⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeop.h

📁 参照网上的例子改写的多叉树的读写程序
💻 H
字号:

/********************************************************
     文 件 名: tree.h
     所属项目: 
     编写单位: 
     作    者: 易剑
     编写日期: 2003-02-10
     版    本: 
     功能描述: 操作配置文件的树结构函数
     修改日志: 
     修改时间: 
     修 改 者: 
    修改内容: 
*********************************************************/

#ifndef _TREE_OP_H
#define _TREE_OP_H

#include <stdio.h>

#include "tree_node.h"


#define NODE_IS_LEAF    0    /* 结点是树叶 */
#define NODE_IS_BRANCH    1    /* 结点是树枝结点 */
#define NODE_IS_ROOT    -1    /* 结点是树根 */
#define NEXT_NODE_EXIST    8    /* 结点是的下一结点存在 */

/* 初始化配置文件 */
struct tree_node *init_cfg(char *cfg_filepath, char *task_filepath, char **argv, char *direct);



/* 反初始化 */
void uninit(struct tree_node *root);

/* 创建树根 */
struct tree_node *create_treeroot(char *data);

/* 提取指定路径的值 */
char *get_value(struct tree_node *root, const char *path, int *flag);

/* 判断指定路么是否是合法路径 */
int node_is_exist(struct tree_node *root, const char *path);

/* 获得下一个并列路径 */
char *get_next_path(struct tree_node *root, const char *path, int flag);
/* 得到下一个并列结点的路径和结点类型 */
char *get_next_path2(struct tree_node *root, const char *path, int *flag);

/* 得到父结点 */
int get_parentnode(struct tree_node *root, const char *path, struct tree_node **parent);
/* 得到父结点路径 */
char *get_parentnodepath(struct tree_node *root, const char *path);

/* 修改结点 */
int update_node(struct tree_node *root, 
                const char *path, 
                const char *newdata, 
                const char *newvalue);

/* 插入一个结点 */
int insert_node(struct tree_node *root, const char *path, const char *data, const char *value);

/* 插入一棵子树 */
int insert_subtree(struct tree_node *root, const char *path, struct tree_node *subtree);

/* 删除一个结点 */
int delete_node(struct tree_node *root, const char *path);



/* 将根结点为 root,路径为 path 的树结构输出到文件 result_filepah 中*/
/* 内部调用 recursion_dump() 和 get_node() */
int dump_tree(struct tree_node *root, const char *result_filepath, const char *path);

/* 从文件 filename 中获取数据创建以 root 为根的树  */
void createtree_fromfile(char *filename, struct tree_node **root);
/* 从文件 fp 中获取数据创建以 root 为根的树  */
void createtree_fromfilefp(FILE *fp, struct tree_node **root);

/* 
    外部函数 -- start
*/
/* 在屏幕上打印树 */
void print_tree(struct tree_node *root,int spaceNum);

void print_tree(struct tree_node *root);

/* 
    外部函数 -- end
*/

#endif    /* _TREE_OP_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -