习题-49.c

来自「本人收集的一些数据结构经典算法实现」· C语言 代码 · 共 29 行

C
29
字号
//本程序只给出了算法思想
//读者可以自己完善本程序
Status CreateBitree_SqList(Bitree &T,SqList sa)//根据顺序存储结构建立二叉链表
{
	Bitree ptr[sa.last+1]; //该数组储存与sa中各结点对应的树指针
	if(!sa.last)
	{
		T=NULL; //空树
		return;
	}
	ptr[1]=(BTNode*)malloc(sizeof(BTNode));
	ptr[1]->data=sa.elem[1]; //建立树根
	T=ptr[1];
	for(i=2;i<=sa.last;i++)
	{
		if(!sa.elem[i]) 
			return ERROR; //顺序错误
		ptr[i]=(BTNode*)malloc(sizeof(BTNode));
		ptr[i]->data=sa.elem[i];
		j=i/2; //找到结点i的双亲j
		if(i-j*2) 
			ptr[j]->rchild=ptr[i]; //i是j的右孩子
		else 
			ptr[j]->lchild=ptr[i]; //i是j的左孩子
	}
	return OK;
}//CreateBitree_SqList

⌨️ 快捷键说明

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