北京师大教育技术考研数据结构08答案内容摘要:

,*q。 p=Hnext。 Hnext=NULL。 while(p!=NULL) {q=p。 p=pnext。 qnext=Hnext。 Hnext=q。 } } void main() {linklist *head,*p。 printf(\nplease input the data:)。 head=creatlinklist()。 5 reverse(head)。 p=headnext。 while(p!=NULL) {printf(%d,pdata)。 p=pnext。 } } 五、 include include include include typedef char DataType。 //定义 DataType 类型 typedef enum PointerTag{Link,Thread}。 typedef struct BiThrNode{ DataType data。 struct BiThrNode *lchild, *rchild。 //左右孩子子树 PointerTag LTag,RTag。 }BiThrNode。 //结点类型 typedef BiThrNode *BiThrTree。 //二叉树类 型 void CreatBinTree(BiThrTree amp。 T) //构造二叉链表 ,注意 :输入序列是先序序列 { char ch。 scanf(%c,amp。 ch)。 if (ch==39。 39。 ) T=NULL。 else //读入非空格 { T=(BiThrTree )malloc(sizeof(BiThrNode))。 //生成结点 Tdata=ch。 TLTag=Link。 TRTag=Link。 CreatBinTree(Tlchild)。 //构造左子树 CreatBinTree(Trchild)。 //构造右子树 } } BiThrTree pre。 //全局变量 6 void InThreading(BiThrTree p) { if(p) { InThreading(plchild)。 //左子树线索化 if(!plchild) {pLTag=Thread。 plchild=pre。 }//前驱线索 if(!prerchild) {preRTag=Thread。 prerchild=p。 }//后继线索 pre=p。 //保持 pre 指向 p InThreading(prchild)。 //右子树线索化 } } void InOrderThreading(BiThrTree amp。 Thrt,BiThrTree T) //中序遍厉二叉树 T,并将其中序线索化, Thrt 指向头结点 { if(!(Thrt=(BiThrTree)malloc(sizeof(BiThrNode)))) exit(0)。 ThrtLTag=Link。 ThrtRTag=Thread。 //建头结点 Thrtrchild=Thrt。 //右指针回指 if(!T) Thrtlchild=Thrt。 else { Thrtlchild=T。 pre=Thrt。 InThreading(T)。 //中序遍历进行中序线索化。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。