c语言编程二叉树,C语言编程二叉树.pdf

C 语言编程二叉树

实验名称:C语言编程二叉树

一、实验目的及要求

1.掌握二叉树的存储实现

2.掌握二叉树的遍历思想

3.掌握二叉树的常见算法的程序实现

二、实验内容

1.编写函数 ,输入字符序列 ,建立 二叉树的 二叉链表 。

2.编写函数 ,实现二叉树的中序递归遍历算法 。 (最好也能实现前缀和后

缀遍历算法 )

3.编写函数 ,实现二叉树的中序非递归遍历算法 。

4.编写函数 ,借助队列实现二叉树的层次遍历算法 。

5.编写函数 ,求二叉树的高度 。

6.编写函数 ,求二叉树的结点个数 。

7.编写函数 ,求二叉树的叶子个数 。

8.编写函数 ,交换二叉树每个结点的左子树和右子树 。

9.编写一个主函数 ,在主函数中设计一个简单的菜单 ,分别调试上述算法 。

三、实验结果

第 1 页

C 语言编程二叉树

第 2 页

C 语言编程二叉树

第 3 页

C 语言编程二叉树

四、实验总结

通过此实验 ,我 掌握 了二叉树的存储实现 ,掌握 了二叉树的遍历思想 ,

掌握 了二叉树的常见算法的程序实现 。

附录

#include

#include

#define MAXSIZE 100

typedef char DataType;

typedef struct BiTNode /* 二叉链表存储结构 */

{ DataType data;

struct BiTNode *lchild,*rchild;

}BiTree;

typedef BiTree* ElemType ; /* 栈中数据元素类型,栈中保存结点指针 */

typedef struct

{ ElemType data[MAXSIZE];

int top;

}SeqStack; /* 栈的类型定义,顺序栈 */

typedef struct

{ElemType queue[MAXSIZE];

int front,rear;

}SP;

SeqStack *initSeqStack() /* 初始化栈 */

第 4 页

C 语言编程二叉树

{ SeqStack *s; /* 首先建立栈空间,然后初始化栈顶指针 */

s=(SeqStack*)malloc(sizeof(SeqStack));

s->top=-1;

return s;}

int push(SeqStack *s,ElemType x)

{ if(s->top==MAXSIZE-1){ /* 栈满不能入栈 */

printf("栈满");

return 0;

}

s->top++;

s->data[s->top]=x;

return 1;}

void pop(SeqStack *s) /* 出栈,假设栈不空 */

{ s->top--; }

int empty(SeqStack *s)

{ if(s->top==-1) return 1;

else return 0;

}

ElemType top(SeqStack *s) /* 设栈不空 */

{ return (s->data[s->top]);

}

/* 递归算法创建二叉链表 */

BiTree *createBiTree()

{ DataType ch;

BiTree *T;

ch=getchar();

if(ch=='0') return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值