7-20双链接列表(20分) ) ) )。
设计了先建立二叉树二叉树链表的程序; 然后,按照先后顺序、中顺序、后顺序遍历二叉树。
输入格式:先输入二叉树。 二叉树中每个节点的键值由字符表示,字符之间不包含空格。 还提供空树的信息,注意用#字符表示空树。
输出格式:输出三行。 第1行是先遍历二叉树的系列,第2行是中顺序遍历二叉树的系列,第3行是后顺序遍历二叉树的系列。 每行不能有多余的空格。 序列中不包含#。
输入样本: ab##dc###输出样本: abdcbacdbcda
# include stdio.h # include stdlib.htypedefcharelementtype; typedef struct TNode *Position; 类型定位二进制树; struct TNode {ElementType Data; 二进制左; BinTree Right; (; BinTree CreatBinTree (()/)二叉树链表BinTree B; char cp; scanf('%c”,cp ); if(CP=='# ' ) b=(bintree ) malloc (sizeof (struct tnode ) ); //B=NULL; B-Data='# '; B-Left=B-Right=NULL; }else{b=(bintree ) malloc ) sizeof ) structtnode ); B-Data=cp; B-Left=CreatBinTree (; B-Right=CreatBinTree (; }return B; } voidpreorderprintleaves1(bintree Bt )//先if ) Bt-data!='# ' ) {printf('%c ',BT-Data ); preorderprintleaves1(Bt-left; preorderprintleaves1(Bt-right; } voidpreorderprintleaves2(bintree Bt )//中if ) Bt-data!=' # ' } { preorderprintleaves2(Bt-left ); printf('%c ',BT-Data ); preorderprintleaves2(Bt-right; } voidpreorderprintleaves3(bintree Bt )//后if ) Bt-data!=' # ' } { preorderprintleaves3(Bt-left ); preorderprintleaves3(Bt-right; printf('%c ',BT-Data ); }}int main () {BinTree BT=CreatBinTree ); preorderprintleaves1(Bt; 打印((n ); preorderprintleaves2(Bt; 打印((n ); preorderprintleaves3(Bt; 打印((n ); 返回0; }