版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
某顺序表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0某顺序表(自己定义、建立),在合法的位置插入某数据元素某顺序表(自己定义、建立),在合法的位置删除某数据元素某顺序表(自己定义、建立),就地逆置(即不另设置空间)用头插法建立单链表,并输出用尾插法建立单链表,并输出某单链表(自己定义、建立),就地逆置(即不另设置空间)某单链表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0某单链表(自己定义、建立),求其长度某单链表(自己定义、建立),在合法的位置插入某数据元素某单链表(自己定义、建立),在合法的位置删除某数据元素某单链表(自己定义、建立),在最后位置插入或删除某二叉链表(自己定义、建立),输出前序、中序、后序遍历序列某二叉链表(自己定义、建立),求其高度(深度)某二叉链表(自己定义、建立),求其叶子结点数某二叉链表(自己定义、建立),求其总结点个数某二叉链表(自己定义、建立),将其左右子树交换方式:抽签,单人单桌,每组8-10人,杜绝作弊!时间:<30分钟总分:100分数据结构C语言描述10分数据结构建立30分基本操作30分主函数20分运行结果10分用途:20%计入学业成绩1.某顺序表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0#include<stdio.h>typedefstruct{intelem[100];intlength;}sqlist;voidcreate(sqlist*L,intn){inti; printf("请输入%d个数:\n",n); for(i=0;i<n;i++)scanf("%d",&L->elem[i]); L->length=n;}voidprint(sqlistL,intn){inti; printf("顺序表为:"); for(i=0;i<n;i++)printf("-%d",L.elem[i]); printf("\n");}intlocate(sqlistL,intn){inti,e; printf("请输入需要查找的数:\n"); scanf("%d",&e); for(i=0;i<n;i++) { if(L.elem[i]==e) { printf("找到该数据:%d\n该数据的位置是:%d\n",e,i); } continue; return0; }}main(){sqlistl;intm;printf("输入此顺序表总数据的个数:"); scanf("%d",&m);create(&l,m);print(l,m); locate(l,m);}2.某顺序表(自己定义、建立),在合法的位置插入某数据元素#include<stdio.h>typedefstruct{intelem[100];intlength;}sqlist;voidcreate(sqlist*L,intn){inti; printf("请输入%d个数:\n",n); for(i=0;i<n;i++)scanf("%d",&L->elem[i]); L->length=n;}voidprint(sqlistL,intn){inti; printf("顺序表为:"); for(i=0;i<n;i++)printf("-%d",L.elem[i]); printf("\n");}voidinsert(sqlist*L,inti,inte){ intj;if((i<1)||(i>L->length+1)) printf("error"); for(j=L->length;j>=i-1;j--) L->elem[j]=L->elem[j-1]; L->elem[i-1]=e; L->length++;}main(){sqlistl;intm,e,i;printf("输入此顺序表总数据的个数:"); scanf("%d",&m);create(&l,m);print(l,m); printf("请输入需要插入的数据:\n"); scanf("%d",&e); printf("请输入需要插入数的位置:\n"); scanf("%d",&i); insert(&l,i,e); print(l,l.length);}3.某顺序表(自己定义、建立),在合法的位置删除某数据元素#include<stdio.h>typedefstruct{intelem[100];intlength;}sqlist;voidcreate(sqlist*L,intn){inti; printf("请输入%d个数:\n",n); for(i=0;i<n;i++)scanf("%d",&L->elem[i]); L->length=n;}voidprint(sqlistL,intn){inti; printf("顺序表为:"); for(i=0;i<n;i++)printf("-%d",L.elem[i]); printf("\n");}voiddel(sqlist*L,inti){ intj;if((i<1)||(i>L->length+1)) printf("error"); for(j=i;j<=L->length-1;j++) L->elem[j-1]=L->elem[j]; L->length--;}main(){sqlistl;intm,e;printf("输入此顺序表总数据的个数:"); scanf("%d",&m);create(&l,m);print(l,m); printf("请输入需要删除数据位置:\n"); scanf("%d",&e); del(&l,e); print(l,l.length);}4.某顺序表(自己定义、建立),就地逆置(即不另设置空间)#include<stdio.h>typedefstruct{intelem[100];intlength;}sqlist;voidcreate(sqlist*L,intn){inti; printf("请输入%d个数:\n",n); for(i=0;i<n;i++)scanf("%d",&L->elem[i]); L->length=n;}voidprint(sqlistL,intn){inti; printf("顺序表为:"); for(i=0;i<n;i++)printf("-%d",L.elem[i]); printf("\n");}voidnizhi(sqlistL,intn){ inti,t; for(i=0;i<n/2;i++) { t=L.elem[i]; L.elem[i]=L.elem[n-i-1]; L.elem[n-i-1]=t; } for(i=0;i<n;i++)printf("-%d",L.elem[i]); printf("\n");}main(){sqlistl;intm;printf("输入此顺序表总数据的个数:"); scanf("%d",&m);create(&l,m);print(l,m); printf("此顺表逆置后为:");nizhi(l,m);}5.用头插法建立单链表,并输出#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;L=newLnode;L->next=NULL;for(i=0;i<n;i++){p=newLnode; p->data=i; p->next=L->next; L->next=p;}returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}voidmain(){intm=6;Lnode*head;head=create(m);print(head);}6.用尾插法建立单链表,并输出#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}voidmain(){intm=6;Lnode*head;head=create(m);print(head);}7.某单链表(自己定义、建立),就地逆置(即不另设置空间)#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}voidnizhi(LinklistL){Linklistp,q;p=L;p=p->next;L->next=NULL;while(p){ q=p; p=p->next; q->next=L->next; L->next=q;}}voidmain(){intm=6;Lnode*head;head=create(m);print(head);printf("此逆置单链表为");nizhi(head);print(head);}8.某单链表(自己定义、建立),查找某数据元素,找到返回位序,找不到返回0#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}intlocate(LinklistL){inti=1,e; Linklistp; p=L->next; printf("请输入需要查找第几个的结点:"); scanf("%d",&e); while(p) { if(i==e) printf("该结点的数据域是:%d\n",p->data); else return0; p=p->next; i++; }}voidmain(){intm=6;Lnode*head;head=create(m);print(head);locate(head);}9.某单链表(自己定义、建立),求其长度#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p) { printf("-%d",p->data); p=p->next; } printf("\n");}intlength(LinklistL){inti=0;Linklistp; p=L->next;while(p){ p=p->next; i++;}returni;}voidmain(){intm=6;Lnode*head;head=create(m);print(head);printf("单链表长度:%d\n",length(head));}10.某单链表(自己定义、建立),在合法的位置插入某数据元素#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}voidinsert(LinklistL,inti,inte){ intj=0; Linklistp,s; p=L;if((!p)||(j>i-1)) printf("error");while(p&&(j<i-1)) { p=p->next; ++j; } s=newLnode; s->data=e; s->next=p->next; p->next=s;}voidmain(){intm=6,i,e;Lnode*head;head=create(m);print(head);printf("请输入需要插入的数:\n"); scanf("%d",&e); printf("请输入需要插入数的位置:\n"); scanf("%d",&i); insert(head,i,e); printf("新的单链表是:"); print(head);}11.某单链表(自己定义、建立),在合法的位置删除某数据元素#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p){ printf("-%d",p->data); p=p->next;}printf("\n");}voiddel(LinklistL,inti){ Linklistp,q; p=L; intj=0; while(p&&(j<i-1)) { p=p->next; ++j; } q=p->next; p->next=q->next; deleteq;}voidmain(){intm=6,e;Lnode*head;head=create(m);print(head);printf("请输入需要删除的结点位置:\n"); scanf("%d",&e); del(head,e); print(head);}12.某单链表(自己定义、建立),在最后位置插入或删除#include<stdio.h>typedefstructLnode{intdata;structLnode*next;}Lnode,*Linklist;Linklistcreate(intn){inti;LinklistL;Linklistp;Linklistr;L=newLnode;L->next=NULL;r=L;for(i=0;i<n;i++){p=newLnode; p->data=i; r->next=p; r=p;}p->next=NULL;returnL;}voidprint(LinklistL){ Linklistp; p=L->next; while(p) {printf("-%d",p->data);p=p->next; } printf("\n");}voidinsert(LinklistL,inte){ Linklistp,s; p=L;while(p->next!=NULL) { p=p->next; } s=newLnode; s->data=e; s->next=p->next; p->next=s;}voiddel(LinklistL){ Linklistp,q; p=L; while(p->next!=NULL) { q=p; p=p->next; } q->next=NULL; deletep;}voidmain(){intm=6,e;Lnode*head;head=create(m);print(head);printf("请输入需要插入的数:\n"); scanf("%d",&e); insert(head,e); printf("新的单链表是:"); print(head);printf("删除后的单链表是:\n"); del(head); print(head);}13.某二叉链表(自己定义、建立),输出前序、中序、后序遍历序列#include<stdio.h>typedefstructBitnode{intdata;structBitnode*lchild,*rchild;}Bilnode,*Bitree;Bitreecreate(){charch;Bitreet;ch=getchar();if(ch=='*')t=NULL;else{t=newBilnode; t->data=ch; t->lchild=create();t->rchild=create();}returnt;}voidqianxu(Bitreet){if(t){ printf("%c",t->data);qianxu(t->lchild); qianxu(t->rchild); }}voidinorder(Bitreet){if(t){inorder(t->lchild); printf("%c",t->data); inorder(t->rchild); }}voidhouxu(Bitreet){if(t){houxu(t->lchild); houxu(t->rchild); printf("%c",t->data);}}voidmain(){ Bitreet; printf("输入:"); t=create(); printf("这棵二叉树的前序遍历为:\n"); qianxu(t); printf("\n"); printf("这棵二叉树的中序遍历为:\n"); inorder(t); printf("\n"); printf("这棵二叉树的后序遍历为:\n"); houxu(t); printf("\n"); }14.某二叉链表(自己定义、建立),求其高度(深度)#include<stdio.h>typedefstructBitnode{intdata;structBitnode*lchild,*rchild;}Bilnode,*Bitree;Bitreecreate(){charch;Bitreet;ch=getchar();if(ch=='*')t=NULL;else{t=newBilnode; t->data=ch; t->lchild=create();t->rchild=create();}returnt;}intlength(Bitreet){ inth1,h2; if(t==NULL) return0;else { h1=length(t->lchild);h2=length(t->rchild); if(h1>h2) returnh1+1; else returnh2+1; }}voidmain(){ Bitreet; printf("输入:"); t=create(); printf("这棵二叉树的高度为:%d\n",length(t));}15.某二叉链表(自己定义、建立),求其叶子结点数#include<stdio.h>typedefstructBitnode{intdata;structBitnode*lchild,*rchild;}Bilnode,*Bitree;Bitreecreate(){charch;Bitreet;ch=getchar();if(ch=='*')t=NULL;else{t=newBilnode; t->data=ch; t->lchild=create();t->rchild=create();}returnt;}intcountzero(Bitreet){if(t==NULL) return0;else if(t->lchild==NULL&&t->rchild==NULL) return1;else returncountzero(t->lchild)+countzero(t->rchild);}voidmain(){ Bitreet; printf("输入:"); t=create(); printf("这棵二叉树叶子结点的个数为:%d\n",c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冀教版高一语文上册阶段测试试卷含答案
- 2025年沪教版七年级生物下册阶段测试试卷含答案
- 2025年统编版选修5历史下册阶段测试试卷
- 2025年上教版九年级生物下册阶段测试试卷
- 2025年牛津译林版九年级历史下册阶段测试试卷
- 2025年度智慧门禁系统门卫服务全面升级合同4篇
- 2025版高铁建设农民工劳动合同规范文本3篇
- 技术专利资源共享合同(2篇)
- 二零二五版智能节能门窗工程分包合同样本4篇
- 2025版医疗责任保险合同范本4篇
- 《医院财务分析报告》课件
- 2025老年公寓合同管理制度
- 2024-2025学年人教版数学六年级上册 期末综合卷(含答案)
- 2024中国汽车后市场年度发展报告
- 感染性腹泻的护理查房
- 天津市部分区2023-2024学年高二上学期期末考试 物理 含解析
- 《人工智能基础》全套英语教学课件(共7章)
- GB/T 35613-2024绿色产品评价纸和纸制品
- 2022-2023学年五年级数学春季开学摸底考(四)苏教版
- 【蚂蚁保】2024中国商业医疗险发展研究蓝皮书
- 军事理论-综合版智慧树知到期末考试答案章节答案2024年国防大学
评论
0/150
提交评论