交换二叉树中所有结点的左右子树

上传人:xiao****1972 文档编号:84836182 上传时间:2019-03-05 格式:DOCX 页数:2 大小:17.32KB
返回 下载 相关 举报
交换二叉树中所有结点的左右子树_第1页
第1页 / 共2页
交换二叉树中所有结点的左右子树_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《交换二叉树中所有结点的左右子树》由会员分享,可在线阅读,更多相关《交换二叉树中所有结点的左右子树(2页珍藏版)》请在金锄头文库上搜索。

1、1. 实验目的:掌握二叉树的结构特性及各种存储结构的特点及适用范围;掌握用指针类型描述、访问和处理二叉树的运算2. 解题思路:以二叉链表作为存储结构,建立一颗二叉树,按层次遍历该二叉树,并实现二叉树中所有结点的左右子树交换,显示其结果。具体步骤:l 从键盘接受按层次遍历的顺序输入的结点,以“#”号结束l 将根结点进指针栈seqstackl 当指针栈不空时,从栈顶取结点,如果此结点的左右孩子不为空,则把其左右孩子交换,然后再分别将其交换后的左右孩子进栈反复执行上一步,直至指针栈为空时程序结束#include stdio.htypedef struct nodeint num;struct nod

2、e * next;linklist;linklist * create(int n)linklist * head,*s,*p;int i;s=(linklist *)malloc(sizeof(linklist);head=s;s-num=1;p=s;for(i=2;inum=i;p-next=s;p=s;p-next=head;return head;linklist * select(linklist * head,int m)linklist *p,*q;inti,t;p=head;t=1;q=p;dop=q-next;t=t+1;if(t=m)t=0;printf(%4d,p-num);q-next=p-next;free(p);elseq=p;while(p-next!=p);head=p;return(head);main()int n,m;linklist *head;printf(input the total numbern);sacnf(%d,&n);printf(input the number of call:n);sacnf(%d,&m);head=create(n);head=select (head,m);printf(the last one id %dn,head-num);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号