二叉树线索化及遍历(纯C语言)

  最近在学习数据结构(c语言),严老师内容很详细,但书中的语言为类C语言。即使弄清楚了算法的理论但当我在实际编程中却发现需要根据c语言的语法修改一些。主要感觉就是书中引用的c++中的引用“&”。在C语言中我一般用函数返回值或者二重指针来进行替代。二叉树线索化及遍历中也运用了这些。分享出来希望能有所借鉴不足之处也希望指出。
typedef enum pointertag{link,thread};
typedef char elemtype;
typedef struct binode
{
	elemtype data;
	binode* lchild;
	binode* rchild;
	pointertag ltag,rtag;
}binode,*bithrtree;/*线索二叉树的存储*/

先序创建二叉树

bithrtree precreattree(bithrtree t)
{
 elemtype ch;
 scanf("%c",&ch);
 if(ch==' ')t=NULL;
 else
 {
  if(!(t=(bithrtree)malloc(sizeof(binode))))exit(0);
  t->data=ch;
  t->ltag=link;
  t->rtag=link;/*标志默认为link*/
  t->lchild=precreattree(t->lchild);
  t->rchild=precreattree(t->rchild);
 }
 return t;
}/*先序创建线索二叉树*/


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值