王博华数据结构实验报告
更新时间:2023-12-25 13:26:02 阅读量: 教育文库 文档下载
- 王博华为推荐度:
- 相关推荐
软件中外132王博华 实验二 链表及其多项式相加
Time Limit: 3000MS
Memory Limit: 65536K Accepted: 471
Case Time Limit:1000MS
Total Submissions: 1127
Description
通过有序对输入多项式的各个项,利用单链表存储该一元多项式,并建立的2
个存储一元多项式的单链表,然后完成2个一元多项式的相加,并输出相加后的多项式。
Input
输入数据有多组,对于每组测试数据,第一行一个整数n,表示第一个多项式La的项数;接下来n行,每行表示多项式的一项,包含两个元素,表示系数和指数;接下来一个整数m,表示第二个多项式Lb的项数;接下来m行,每行表示多项式的一项,包含两个元素,表示系数和指数;两个多项式的输入都是按指数从小到大。(n,m<=1000)
Output
La与Lb相加之后的多项式。
按指数从小到大输出,每行一项,用空格把系数和指数分开。
Sample Input
3 1 2 2 3 3 4 3 4 3 2 5 4 6
Sample Output
1 2 6 3 3 4 2 5 4 6
Source
#include
p=a=(struct jiegou *)malloc(sizeof(jiegou)); for(i=0;i { q=(struct jiegou *)malloc(sizeof(jiegou)); scanf(\p->next=NULL; scanf(\ p=b=(struct jiegou *)malloc(sizeof(jiegou)); for(i=0;i scanf(\p->next=NULL; } void jifa() { jiegou *p,*q; int e,d,i; p=c=(struct jiegou *)malloc(sizeof(jiegou)); a=a->next; b=b->next; while(a!=NULL&&b!=NULL) { if(a->zhishu==b->zhishu) { e=a->shu+b->shu; if(e!=0) { q=(jiegou *)malloc(sizeof(jiegou)); p->next=q; p=q; p->shu=e; p->zhishu=a->zhishu; } b=b->next; a=a->next; } else if(a->zhishu p->next=q; p=q; p->shu=a->shu; p->zhishu=a->zhishu; a=a->next; } else { q=(jiegou *)malloc(sizeof(jiegou)); p->next=q; p=q; p->shu=b->shu; p->zhishu=b->zhishu; b=b->next; } } while(a) { q=(jiegou *)malloc(sizeof(jiegou)); p->next=q; p=q; p->shu=a->shu; p->zhishu=a->zhishu; a=a->next; } while(b) { q=(jiegou *)malloc(sizeof(jiegou)); p->next=q; p=q; p->shu=b->shu; p->zhishu=b->zhishu; b=b->next; } p->next=NULL; } void shuchu() { jiegou *p; p=c->next; while(p) { printf(\ int main () { shuru(); jifa(); shuchu(); } 实验三 括号匹配判断算法 Time Limit: 3000MS Memory Limit: 65536K Accepted: 474 Case Time Limit:1000MS Total Submissions: 1025 Description 假设在表达式中([]())或[([ ][ ])]等为正确的格式,[( ]) 或([( ))或 (( )])均为不正确的格式。基于栈设计一个判断括号是否正确匹配的算法。 Input 输入数据有多组,每组测试数据一行,一个字符串,只包含 ‘[‘ ,’]’ ,’(‘ ,‘)’ 。 Output 对于每组测试数据,若括号匹配输出yes 否则输出 no。 Sample Input []()[] ([[]])[) Sample Output yes no Source #include struct snode *next; }snode,*linkstack; void initlinkstack(linkstack *); void linkstackpush(linkstack *,char); int linkstackpop(linkstack *); int linkstackgettop(linkstack,char *); void matching(char str[]); int main() {char str[8000]; while(gets(str)) {matching(str); } return 0; } void linkstackpush(linkstack *ls,char e) {linkstack p=(linkstack)malloc(sizeof(snode)); p->data=e;p->next=*ls;*ls=p; } int linkstackpop(linkstack *ls) { linkstack p=*ls; if(*ls==NULL) return 0; (*ls)=(*ls)->next; free(p); return 1; } int linkstackgettop(linkstack ls,char *e) { if(ls==NULL) return 0; *e=ls->data;return 1; } void initlinkstack(linkstack *ls) { *ls=NULL; } void matching(char str[]) { linkstack s;int k,flag=1;char e; initlinkstack(&s); for(k=0;str[k]!='\\0'&&flag;k++) { if(str[k]!='('&&str[k]!=')'&&str[k]!='['&&str[k]!=']'&&str[k]!='{'&&str[k]!='}') continue; switch(str[k]) { case '(':case '[':case '{':linkstackpush(&s,str[k]);break; case ')': if(s!=NULL) { linkstackgettop(s,&e); if(e=='(') linkstackpop(&s); else flag=0; } else flag=0; break; case ']': if(s!=NULL) { linkstackgettop(s,&e); if(e=='[') linkstackpop(&s); else flag=0; } else flag=0; break; case '}': if(s!=NULL) { 3 0 5 3 0 1 0 4 1 3 Sample Output 0 1 2 0 1 2 0 1 3 4 2 0 1 4 3 2 Source #include int numVertexes,numEdges; }MGraph; void creat(MGraph *G){ int i,j,k; scanf(\ for(i=0;i void dfs(MGraph *G,int i){ int j; visited[i] = 1; printf(\ for(j=1;j dfs(G,j); } } } void DFS(MGraph *G){ int i; for(i=0;i for(i=0;i printf(\} void BFS(MGraph *G){ int i,j,k; for(i=0;i for(k=0;k } else continue; } printf(\} int main(){ MGraph *Graph; Graph= (MGraph*)malloc(sizeof(MGraph)); creat(Graph); DFS(Graph); BFS(Graph); printf(\} 实验十八 BST树的构建与应用 Time Limit: 3000MS Memory Limit: 65536K Accepted: 232 Case Time Limit:1000MS Total Submissions: 330 Description 实现BST查找及建立以及遍历算法,根据查询的数,建一颗BST树,初始树为 空,重复的数不用插入树中。 Input 输入数据有多组。 对于每组测试数据,第一行一个整数N,表示要查询的数的个数,第二行N个数,表示要查询的树。(100<=N<=10000) Output 对于每组测试数据,输出两行,第一行为BST树中元素的个数 第二行为BST树的先序序列 Sample Input 6 12 23 32 4 8 12 Sample Output 5 12 4 8 23 32 Source #include struct lisp *l,*r; int data; }*tree; int n;int m; void build(struct lisp *&p,int x) { if(p==NULL) { p=(struct lisp*)malloc(sizeof(struct lisp)); p->data=x; p->l=NULL; p->r=NULL; m++; return; } if(p->data==x)return; else if(p->data>x)build(p->l,x); else build(p->r,x); } void dfs(struct lisp *p) { if(p==NULL)return; printf(p==tree?\ dfs(p->l); dfs(p->r); } int main() { while(scanf(\ { int x,i; tree=NULL; for(m=i=0;i 实验十九 快速排序 Time Limit: 3000MS Memory Limit: 65536K Accepted: 311 Case Time Limit:1000MS Total Submissions: 474 Description 对已知的数据进行快速排序
正在阅读:
王博华数据结构实验报告12-25
水利工程系毕业设计计安排11122606-29
浙江选考政治总复习精练:必修 第一课 美好生活的向导 含解析04-14
2013年进口奶粉热卖排行榜10强09-13
最新教育报刊电子信箱(一)03-10
应急管理知识竞赛复习题11-17
美国大学申请玄机重重07-26
中财会计I习题AB卷(模拟试卷及答案)05-11
三阳裸眼3D广告机说明及软件安装09-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 王博
- 华数
- 结构
- 实验
- 报告
- 海尔集团发展史
- 机械制造技术基础课程设计模板
- 人教版八年级数学上册13.1轴对称 docx
- 解剖章节练习题
- K12教育学习资料(全国通用版)2019年中考数学复习 单元测试(五)四边形
- 2018年国际贸易实务模拟实习报告范文 doc
- 人教版高中地理必修一教学设计-《4.1营造地表形态的力量》教案
- 文献综述 陆正喜 1040128
- 王香平大学写作练习题及答案
- 克拉玛依市白碱滩区跃北路东段改造工程施工方案
- 12090112179 - 12090112179-法学秦益刚 - 初稿doc
- 健康评估(诊断学)重点整理
- 2014反思论文
- 六年级数学综合练习题(一)
- 江苏省常州市西夏墅中学高中英语 Unit3 Back to the past Grammar and usage教学设计 牛津译林版必修3
- 博士入学考试肿瘤学历年真题(北大复旦中大天医南医同济湘雅三四军医大)
- 拱坝坝基及基础处理洞室开挖施工技术要求
- 劳动关系与劳动法2014
- 操作规程 - 图文
- 建筑工程预防高处坠落事故若干规定