ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:34.19KB ,
资源ID:964181      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/964181.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验报告讲解.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验报告讲解.docx

1、数据结构实验报告讲解 浙江师范大学实 验 报 告学 院: 数理与信息工程学院 专 业: 计算机科学与技术 姓 名: 杨富生 学 号: 201531910137 课程名称: 数据结构 指导教师: 钟发荣 实验时间: 2016-06-15 2016年6月15日实验一 1.实验要求1.1掌握数据结构中线性表的基本概念。1.2熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构上的实验。2.实验内容2.1编写一个函数,从一个给定的顺序表A中删除元素值在x到y之间的所有元素,要求以较高效率来实现。#includetypedef int elemtype;#define

2、 maxsize 10int del(int A,int n,elemtype x,elemtype y) int i=0,k=0; while(i=x&Ai=y) k+; else Ai-k=Ai; i+; return(n-k);void main() int i,j; int amaxsize; printf(输入%d个数:n,maxsize); for(i=0;imaxsize;i+) scanf(%d,&ai); j=del(a,maxsize,1,3); printf(输出删除后剩下的数:n); for(i=0;idata=x;s-next=L;L=s; else p=L;j=1;

3、 while(p&jnext; if(p|ji-1) return error; s=(Linklist)malloc(sizeof(Lnode); s-data=x;s-next=p-next;p-next=s; 2.3生成两个多项式PA和PB,求他们的和,输出“和多项式”。typedef struct nodeint exp;float coef;struct node *next;polynode;polynode *polyadd(polynode *pa,polynode *pb) polynode *p,*q,*pre,*r; float x; p=pa-next; q=pb-ne

4、xt; pre=pa; while(p!=NULL)&(q!=NULL) if(p-expq-exp) r=q-next; q-next=p; pre-next=q; pre=q; q=r; else if(p-exp=q-exp) x=p-coef+q-coef; if(x!=0) p-coef=x; s=p; else pre-next=p-next; free(p); p=pre-next; r=p; q=q-next; free(r); else if(p-expexp) pre=p; p=p-next; if(q!=NULL) pre-next=q; free(pb);2.4设计一个

5、统计选票的算法,输出每个候选人的得票结果。typedef int elemtypetypedef struct linknode elemtype data; struct linknode *next;nodetype;nodetype *create() elemtype d; nodetype h=NULL,*s,*t; int i=1; printf(建立单链表:n); while(1) printf(输入第%d个结点数据域,i); scanf(%d,&d); if(d=0)break; if(i=1) h=(nodetype *)malloc(sizeof(nodetype); h-

6、data=d;h-next=NULL;t=h; else s=(nodetype *)malloc(sizeof(nodetype); s-data=d;s-next=NULL;t-next=s; t=s; i+; return h;void sat(nodetype *h,int a) nodetype *p=h; while(p!=NULL) ap-data+; p=p-next; void main() int aN+1,i; for(i=0;iN;i+) ai=0; nodetype *head; head=create(); sat(head,a); printf(候选人:); fo

7、r(i=1;i=N;i+) printf(%3d,i); printf(n得票数n); for(i=1;i=N;i+) printf(%3d,ai); printf(n);3.实验心得体会线性表是最简单的、最常用的一种数据结构,是实现其他数据结构的基础。实验二1.实验要求1.1了解栈和队列的特性,以便灵活运用。1.2熟练掌握栈和有关队列的各种操作和应用。2.实验内容2.1 设一个算术表达式包括圆括号,方括号和花括号三种括号,编写一个算法判断其中的括号是否匹配。#include#include#include#define NULL 0typedef struct list char str;

8、struct list *next;list;void push(char,list *);int pop(char.list *);void deal(char *str);main(void)char str20;printf(n请输入一个算式:n);gets(str);deal(str);printf(正确!);getchar();return 0;void deal(char *str)list *L;L=(list *)malloc(sizeof(list);if(!L) printf(错误!); exit(-2);L-next=NULL;while(*str) if(*str=(|

9、*str=|*str=) push(*str,L); else if(*str=)|*str=|*str=) if(pop(*str,L) puts(错误,请检查!); puts(按回车键退出); getchar();exit(-2); str+;if(L-next)puts(错误,请检查!);puts(按任意键退出);getchar();exit(-2);void push(char c,list *L)list *p;p=(list *)malloc(sizeof(list);if(!p) printf(错误!); exit(-2);p-str=c;p-next=L-next;L-next

10、=p;#define check(s) if(L-next-str=s)p=l-next;L-next=p-next;free(p);return(0);int pop(char c,list *L) list *p; if(L-next=NULL)return 1; switch(c) case):check() break; case:check() break; case:check() break; return 1;实验三1.实验要求1.1掌握二叉树,二叉树排序数的概念和存储方法。1.2掌握二叉树的遍历算法。1.3熟练掌握编写实现树的各种运算的算法。2.实验内容2.1编写程序,求二叉

11、树的结点数和叶子数。#include#includestruct node char data; struct node *lchild,*rchild;bnode;typedef struct node *blink;blink creat() blink bt; char ch; ch=getchar(); if(ch= ) return(NULL); else bt=(struct node *)malloc(sizeof(bnode); bt-data=ch; bt-lchild=creat(); bt-rchild=creat(); return bt;int n=0,n1=0;void preorder(blink bt) if (bt) n+; if(bt-lchild=NULL&bt-rchild=NULL) n1+; preorder(bt-lchild); preorder(bt-rchild); void main() blink root; root=creat(); preorder(root); printf(此二叉数的接点数有:%dn,n); printf(此二叉数的叶子数有:%dn,n1);2.2编写递归算法,求二叉树中以元素值为X的结点为

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1