资源描述:
《数据结构实验报告实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、本科实验报告课程名称:数据结构实验项目:树形结构实验地点:迎西校区逸夫楼302专业班级:软件1109学号:学生姓名:栗永春指导教师:牛之贤年月日树形结构一、实验目的和要求目的与要求二、实验内容和原理三、主要仪器设备四、操作方法与实验步骤列出调试通过的源程序。习题1:/**********************************************************************1.编写递归算法,计算二叉树中叶子结点的数目。****************************************
2、******************************/#include#includeintcount=0;structnode{charinfo;structnode*llink,*rlink;};typedefstructnodeNODE;NODE*creat(){charx;NODE*p;scanf("%c",&x);printf("%c",x);if(x!='.'){p=(NODE*)malloc(sizeof(NODE));p->info=x;p->llink=creat(
3、);p->rlink=creat();}elsep=NULL;returnp;}voidrun(NODE*t){if(t){run(t->llink);run(t->rlink);printf("%c",t->info);if(((t->llink)==NULL)&&((t->rlink)==NULL))count++;}}voidmain(){NODE*T;printf("PLeaseinputatree:");T=creat();printf("");if(!T)printf("Thisisaemptybinaryt
4、ree.");else{printf("Theresultofposttraveseis:");run(T);}printf("总共有叶子节点数%d",count);printf("");}习题2:/**********************************************************************用单链表ha存储多项式A(x)=a0+a1x1+a2x2+…+anxn(其中aI为非零系**数),用单链表hb存储多项式B(x)=b0+b1x1+b2x2+…+bmxm(其中bj为**非
5、零系数),要求计算C(x)=A(x)+B(x),结果存到单链表hc中**。试写出程序。**********************************************************************/#include#includetypedefstructdxs{inta;structdxs*next;}Dxs,*Dxss;//函数声明部分voidStructure(Dxsshead,intn);//多项式录入voidShow(Dxsshead);//显示多项式
6、voidAdd(Dxsshead1,Dxsshead2,Dxsshead3);//将多项式相加voidfrees(Dxsshead);//释放存储空间voidmain(){Dxssha,hb,hc;intn;//为多项式申请头结点空间ha=(Dxss)malloc(sizeof(Dxs));hb=(Dxss)malloc(sizeof(Dxs));hc=(Dxss)malloc(sizeof(Dxs));//从用户处录入多项式的参数printf("请输入多项式1的项数");scanf("%d",&n);Structure(h
7、a,n);printf("请输入多项式的2项数");scanf("%d",&n);Structure(hb,n);//将多项式进行相加Add(ha,hb,hc);printf("多项式HC的式子是");Show(hc);//将构建的多项式显示出来frees(ha);//释放掉申请的空间frees(hb);frees(hc);printf("");}voidStructure(Dxsshead,intn)//多项式录入{Dxssp,q;inta;printf("请输入要录入系统的多项式的系数,从次数较小的开始"
8、);p=head;do{scanf("%d",&a);q=(Dxss)malloc(sizeof(Dxs));q->a=a;p->next=q;q->next=NULL;p=q;}while(--n);}voidShow(Dxsshead)//显示多项式{int