资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
At幺伽兀孝TAIYUAN UNIVEfiSIIY OF TECHNOLOGY本科实验报告课程名称:数据结构实验项目:树形结构实验地点:迎西校区逸夫楼302专业班级:软件 1109 学号: 2011004872学生姓名:栗永春指导教师:牛之贤年月树形结构、实验目的和要求目的与要求二、实验内容和原理三、主要仪器设备四、操作方法与实验步骤列出调试通过的源程序。习题1:/ Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx*1. 编写递归算法,计算二叉树中叶子结点的数目。*/ Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /#includevstdio.h#includevmalloc.h int count = 0;struct node char info;struct node *llink,*rlink; ;typedef struct node NODE;NODE *creat()char x;NODE *p;scanf(%c,&x);printf(%c,x);if(x!=.)p=(NODE *)malloc(sizeof(NODE); p-info=x;p-llink=creat(); p-rlink=creat();elsep=NULL; return p;void run(NODE *t)if(t)run(t-llink);run(t-rlink); printf(%c,t-info);if( (t-llink) = NULL) & (t-rlink) = NULL) count +;void main()NODE *T;printf(PLease input a tree:n);T=creat();printf(n);if(!T)printf(This is a empty binary tree.);else printf(The result of post travese is:n ); run(T);printf(总共有叶子节点数%d, count );printf(n);习题2:* 用单链表ha存储多项式A (x ) =a0+alxl+a2x2+anxn(其中al为非零系* 数),用单链表hb存储多项式B (x ) =b0+b1x1+b2x2+bmxm(其中bj为 * 非零系数),要求计算C (x ) = A (x ) +B (x ),结果存到单链表he中* 。试写出程序。*/Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /#include vstdio.h#include vmalloc.htypedef struct dxsint a;struct dxs *next;Dxs, *Dxss;函数声明部分void Structure( Dxss head, int n ); 多项式录入void Show( Dxss head );/ 显示多项式void Add( Dxss headl, Dxss head2, Dxss head3 );将多项式相加void frees( Dxss head ); 释放存储空间void main()Dxss ha, hb, hc;int n;为多项式申请头结点空间ha = (Dxss)malloc(sizeof(Dxs);hb = (Dxss)malloc(sizeof(Dxs);hc = (Dxss)malloc(sizeof(Dxs);从用户处录入多项式的参数printf(请输入多项式1的项数5);scanf(%d, & n);Structure( ha, n );printf(请输入多项式的2项数5);scanf(%d, & n);Structure( hb, n );将多项式进行相加Add(ha, hb, hc);printf(多项式HC的式子是5);Show( hc );将构建的多项式显示出来frees( ha );/释放掉申请的空间frees( hb );frees( hc );printf(nn);void Structure( Dxss head, int n ) 多项式录入Dxss p, q;int a;printf(请输入要录入系统的多项式的系数,从次数较小的开始n); p = head;doscanf(%d, &a );q = (Dxss)malloc( sizeof(Dxs);q-a = a;p-next = q;q-next = NULL;p = q;while(_n);void Show( Dxss head ) / 显示多项式int m = 0;Dxss p;p = head-next;while( p != NULL )printf(%d*XA%d, p-a, m+ );p = p-next;if( p != NULL)printf(+);printf(n);将多项式相加void Add( Dxss headl, Dxss head2, Dxss head3 ) Dxss p, q, l, m;p = head1-next;q = head2-next;l= head3;while(p != NULL) & (q != NULL )m = (Dxss)malloc(sizeof(Dxs); m-a = p-a + q-a; m-next = NULL;l-next = m;1 = m;p = p-next;q = q-next;whi1e( p != NULL )m = (Dxss)malloc(sizeof(Dxs);m-a = p-a;1-next = m;1 = m;p = p-next;whi1e( q != NULL )m = (Dxss)ma11oc(sizeof(Dxs);m-a = q-a;1-next = m;1 = m;q = q-next;1-next = NULL;void frees( Dxss head ) 释放存储空间 Dxss p, q;p = head;whi1e( p != NULL )q = p;p = p-next; free(q);五、实验数据记录和处理列出上面程序对应的运行结果。注:填写内容用 5 号,宋体,单倍行距
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号