operater declare.h

来自「二叉树的遍历操作」· C头文件 代码 · 共 83 行

H
83
字号
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

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

typedef int Status;

//-------二叉树二叉链表存储表示-------

typedef char TElemType;

typedef enum {zero,one,two} Mtype;

typedef struct BiTNode
{
	TElemType data;
	struct BiTNode *lchild,*rchild;
	Mtype mark;

}BiTNode,*BinTree; //有mark域的结点指针类型


//------栈存储表示----------

#define STACK_INIT_SIZE 10
#define STACKINCREMENT 10

typedef BinTree SElemType;

typedef struct
{
	SElemType *base;
	SElemType *top;
	int stacksize; 

}SqStack;

//-----队列存储表示--------
typedef BinTree QElemType;

typedef struct QNode
{
	QElemType data;
	struct QNode *next;

}QNode,*QueuePtr;

typedef struct 
{
	QueuePtr front;
	QueuePtr rear;

}LinkQueue;


extern Status InitStack(SqStack &);
extern Status Push(SqStack &,SElemType );
extern Status Pop(SqStack &,SElemType &);
extern Status StackEmpty(SqStack &);


extern Status InitQueue(LinkQueue &);
extern Status EnQueue(LinkQueue &,QElemType );
extern Status DeQueue(LinkQueue &,QElemType &);
extern void QueueTraverse(LinkQueue );
extern Status DestroyQueue(LinkQueue );
extern Status QueueEmpty(LinkQueue );


extern void CreateBinTree(BinTree &);
extern void PreOrderTraverse(BinTree );
extern void InOrderTraverse(BinTree );
extern void PostOrderTraverse(BinTree );
extern void LevelOrderTraverse(BinTree );
extern void PreOrderTraverseRE(BinTree );
extern void InOrderTraverseRE(BinTree );
extern void PostOrderTraverseRE(BinTree );

⌨️ 快捷键说明

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