二叉树的一般操作,实现了下:
主要练习了二叉树的非递归遍历,利用栈,和队列来完成。算法思想,没描述清楚,表达能力很差...崩溃....
代码
#include "stdio.h"
#include "malloc.h"
#define MAXSIZE 20
//二叉树结点的结构体表示形式
typedef struct node
{
char data;
struct node* left,*right;
}BTree;
//栈的结构体表示形式
typedef struct stackelem
{
BTree* a[MAXSIZE];
int top;
}Stack;
//队列的结构体的表示形式
typedef struct queueelem
{
BTree* b[MAXSIZE];
int front,rear;
}Queue;
//创建二叉树,利用递归的方法
BTree* Create()
{
char ch;
scanf_s("%c",&ch);
getchar();
if (ch=='#')
{
return NULL;
}
else
{
BTree* btree=(BTree*)malloc(sizeof(BTree));
if (NULL==btree)
{
return NULL;
}
btree->data=ch;
btree->left=Create();
btree->right=Create();
return btree;
}
}
//前序遍历,递归的方法
void Preorder(BTree* bt)
{
if (NULL!=bt)
{
printf("%c ",bt->data);
Preorder(bt->left);
Preorder(bt->right);
}
}
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。