//filename:bitree.h
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define NIL '#' //定义'#'为空节点
typedef struct queue_node qnode;
typedef struct bitree_node bitree;
struct bitree_node
{
char elem;
bitree *lchild;
bitree *rchild;
};
/*队列节点*/
struct queue_node
{
bitree *btn;
qnode *next;
};
typedef struct link_queue
{
qnode *head;
qnode *tail;
}queue;
/*****队列的基本操作******/
int init_link_queue(queue *Q);
int is_queue_empty(queue Q);
int enqueue(queue *Q, bitree *btn);
int dequeue(queue *Q, char *elem);
/*****二叉树的操作*****/
bitree *create_bitree();
int is_bitree_empty(bitree *btn);
int get_bitree_depth(bitree *btn);
bitree *get_parent(bitree *btn, char elem);
int preorder_traverse(bitree *btn, int (*visit)(char));
int inorder_traverse(bitree *btn, int (*visit)(char));
int postorder_traverse(bitree *btn, int (*visit)(char));
int levelorder_traverse(bitree *b
二叉树链式存储的实现
最新推荐文章于 2024-07-27 23:23:54 发布
本文详细讲解如何使用C语言实现二叉树的链式存储结构,包括节点定义、插入、删除和遍历等操作。通过实例代码解析二叉树的前序、中序和后序遍历过程,帮助理解链式存储在二叉树中的应用。

最低0.47元/天 解锁文章
351

被折叠的 条评论
为什么被折叠?



