首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

二叉树遍历——递归链式(C语言实现)

如果二叉树是这种情况,前中后怎么进行遍历呢? 前序遍历: 前序是先访问根节点,再访问左子树,最后访问右子树。(这里要注意,B是A的左子树,C是A的右子树,D是B的左子树,以此类推) 遍历都是从根节点进入的,那么我们第一个访问的肯定是A,然后访问的是结点B,正常来说又要访问结点的C了,但是B结点也有子孙,所以要先访问B的所有子孙才能访问C的子孙。 递归到D结点之后,D就是根节点,两边的空指针就是左右孩子,先进入左孩子,因为是空指针,所以返回到D,再进行右孩子的访问,右孩子也是个空指针,那么也返回到D,D的所有子孙都访问完之后返回B, 然后又要访问B的右边的子孙(也是右树)。 那么顺序就是:A->B->D->NULL->NULL-> E->G->NULL->NULL->NULL->C->F->H->NULL->NULL->I->NULL->NULL->NULL

00

R_数据类型和数据结构1

(https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/9169440/20231123-6874b036.png?x-cos-security-token=XazQOQwryFdEOouJEjBgSnkh2WyvnG3a264790de313e55f7686759f352702ba1YFMBVZ3wQVjBNpoW_KMfN2RC09s6PfwdOqDcowZ3P-Vo0Am9BunZ4nJYzYFXBf7u5rLlbzzjf41n21RTMIwKezXvMcE1s1nu1XTwH40V-DUB5mvNVBS6Bm8IYnyNX0zL_zY5mhgTsz0r_8dGULdfm8LSH9IHSFVgbXJsp5awVI2M84NA1XvBQ8tBIgS2jmm6qxLuMN2l0tUqTy9WDGKMqUFoexOHq2yg8EFWKgBi3uk4Mrtui9aj_Wbq4J9lTTsUD-BMNKfc0Jr7Ati8vUiANTLmPVb1uu6KzMi1QSPo2E_uGWrQUoGWn8Pw0qeotVWz4Ur-1-g1dM5lcMdqieKVDGWR_yM2MiMKjPZrjhj3Kx-ANwjikSRCC9ysRJ9q7qC6k0yM-TFgjEcggJkh6gtkNQ&q-sign-algorithm=sha1&q-ak=AKIDMiVx-3J5YWwEhf0th4uVCL7ZvzqP09bV-5qP2bqgBShA0eG8ZY90NNuTSACMQNFO&q-sign-time=1700710846%3B1700718041&q-key-time=1700710846%3B1700718041&q-header-list=host&q-url-param-list=x-cos-security-token&q-signature=3f3721451993df5289443555b48f4af347e00707)

01

期末复习之数据结构 第3章 栈和队列

五:写出下列程序段的输出结果(栈的元素类型SElem Type为char)。 1.void main( ){ Stack S; Char x,y; InitStack(S); X=’c’;y=’k’; Push(S,x); Push(S,’a’); Push(S,y); Pop(S,x); Push(S,’t’); Push(S,x); Pop(S,x); Push(S,’s’); while(!StackEmpty(S)){ Pop(S,y);printf(y); }; Printf(x); } 答:输出为“stack”。 2.【严题集3.12②】写出下列程序段的输出结果(队列中的元素类型QElem Type为char)。 void main( ){ Queue Q; Init Queue (Q); Char x=’e’; y=’c’; EnQueue (Q,’h’); EnQueue (Q,’r’); EnQueue (Q, y); DeQueue (Q,x); EnQueue (Q,x); DeQueue (Q,x); EnQueue (Q,’a’); while(!QueueEmpty(Q)){ DeQueue (Q,y);printf(y); }; Printf(x); } 答:输出为“char”。 3.【严题集3.13②】简述以下算法的功能(栈和队列的元素类型均为int)。 void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)){ DeQueue (Q,d); Push(S,d); }; while(!StackEmpty(S)){ Pop(S,d); EnQueue (Q,d); } } 答:该算法的功能是:利用堆栈做辅助,将队列中的数据元素进行逆置。

02
领券