前序建立二叉树(使用和不使用二级指针)
这个贴子当做一篇笔记。也希望对其他人有用处。学习数据结构,用的C语言实现。没有引用,感觉用C写程序确实比用Java要多考虑。
程序代码:
typedef struct BiTreeNode{ char data; struct BiTreeNode *lchild; struct BiTreeNode *rchild; }BiTreeNode,*BiTree; /* 使用二级指针前序建立二叉树 */ void createBiTree(BiTree *pt){ char ch; scanf("%c",&ch); if(ch==' ') *pt = null; else{ *pt = (BiTreeNode *)malloc(sizeof(BiTreeNode)); (*pt)->data = ch; createBiTree(&(*pt)->lchild); createBiTree(&(*pt)->rchild); } } /* 不使用二级指针前序建立二叉树 */ BiTreeNode *createBiTree(){ BiTreeNode *pt; char ch; scanf("%c",&ch); if(ch==' ') pt = null; else{ pt = (BiTreeNode *)malloc(sizeof(BiTreeNode)); pt->data = ch; pt->lchild = createBiTree(); pt->rchild = createBiTree(); } return pt; }