二叉树.c

来自「数据结构各章实验源代码; 数据结构实验源代码」· C语言 代码 · 共 22 行

C
22
字号
BTCHINALR  * createbt( )
{	BTCHINALR *q;
	struct node1 *s[30];
	int j,i,x;

	printf("建立二叉树,输入结点对应的编号和值,编号和值之间用逗号隔开\n\n");
	printf("i,x = ");
	scanf("%d,%c",&i,&x);
	while(i != 0 && x != '$')
	  {q = (BTCHINALR*)malloc(sizeof(BTCHINALR));        /*建立一个新结点q*/
	   q->data = x;  q->lchild = NULL;  q->rchild = NULL;
	   s[i] = q;                           /*q新结点地址存入s指针数组中*/
	   if(i != 1)                          /*i = 1,对应的结点是根结点*/
	     {j = i / 2;                       /*求双亲结点的编号j*/
	      if(i % 2 == 0) s[j]->lchild = q; /*q结点编号为偶数则挂在双亲结点j的左边*/
	      else  s[j]->rchild = q;}         /*q结点编号为奇数则挂在双亲结点j的右边*/
	   printf("i,x = ");
	   scanf("%d,%c",&i,&x);}
	return  s[1];                          /*返回根结点地址*/
}

⌨️ 快捷键说明

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