C语言数据结构 创建和遍历二叉树 源码

Create&TraverseBiTree

程序已就绪,可直接编译运行

#include #include

#define OK 1 #define TRUE 1 #define ERROR 0 #define FALSE 0 #define OVERFLOW -1

#define STACK_INIT_SIZE 200; #define STACKINCERMENT 20;

typedef int status; typedef char TElemType;

//-----二叉树的二叉链表存储表示----- typedef struct BiTNode {

TElemType data;

struct BiTNode *lchild,*rchild;//左右孩子指针 }BiTNode,*BiTree;//*BiTree表示指向该结构体的指针

//-----单链队列-----队列的链式存储结构

typedef BiTreeQElemType; typedef struct QNode {

QElemType data; struct QNode *next; }QNode,*QueuePtr;

typedef struct {

QueuePtr front; QueuePtr rear; }LinkQueue;

//------队列基本操作------

status InitQueue(LinkQueue&Q)

{//构造一个空队列Q

Q.front=(QueuePtr)malloc(sizeof(QNode)); Q.rear=Q.front;

if(!Q.front)exit(OVERFLOW); Q.front->next=NULL; return OK; }//InitQueue

status EnQueue(LinkQueue&Q,QElemType e) {//插入元素e为Q的新队尾元素 QueuePtr p;

p=(QueuePtr)malloc(sizeof(QNode)); if(!p)exit(OVERFLOW); p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; return OK; }//EnQueue

status DeQueue(LinkQueue&Q,QElemType&e)

{//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4