⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitree.txt

📁 二叉排序树的中序遍历
💻 TXT
字号:
/*   BITREE.C   二叉排序树的中序遍历   */
/*  将该程序中的学号、姓名以及????(10处)补充完整  */
/*  20031500林定移  将前面的学号和姓名更改为你的学号和姓名!!!  */

#include "stdio.h"

struct TreeNode {
	struct TreeNode *lchild;
	int data;
	struct TreeNode *rchild;
};  /*以上语句定义树结点的数据结构*/
typedef struct TreeNode NODE;

NODE *T;  /*T为二叉树根结点的存储地址*/
int n=30;
int k[30]={15,9,27,20,7,11,19,29,30,1,8,3,16,21,22,
	14,12,5,2,25,6,18,23,28,10,4,13,17,24,26};

void InsertTree(int item) {  /*将一个数据插入到二叉排序树中*/
	NODE *p,*q;
	p=(NODE *)malloc(sizeof(NODE));  /*申请一个新结点p*/
	p->data=item;  /*以下三个语句给p赋初值*/
	p->lchild=NULL;
	p->rchild=NULL;
	if (T==NULL)  ???? ;  /*如果为空树*/
	else {  /*如果不是空树*/
		q=T;
		do {
			if (item < q->data) {  /*插入到左子树中*/
				if (q->lchild!=NULL)  ???? ;
				else { ???? ; break;}
			}
			else {  /*插入到右子树中*/
				if (q->rchild!=NULL)  ???? ;
				else { ???? ; break;}
			}
		} while (1);
	}
}

void SortTree() {  /*调用插入数据函数,将所有数据插入到二叉树中,形成二叉排序树*/
	int i;
	T=NULL;
	for (i=0;i<n;i++)  ???? ;
}

void InOrder() {  /*二叉排序树的中序遍历*/
	int top=0;
	NODE *p;
	NODE *stack[100];
	p=T;
	do {
		while (p!=NULL) {
			top++;  /*进栈*/
			stack[top]=p;
			???? ;
		}
		p=stack[top];
		???? ;  /*出栈*/
		printf("%d ",p->data);  /*输出一个结点的数据域*/
		???? ;  /*指向右子树*/
	} while ( ???? ) ;  /*条件式*/
}

main() {
	SortTree();
	InOrder();
	printf("\n");
}

⌨️ 快捷键说明

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