欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    顺序表链表情况总结实验报告.doc

    • 资源ID:3027709       资源大小:166.22KB        全文页数:27页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    顺序表链表情况总结实验报告.doc

    ,.实验报告实验目的:学生管理系统(顺序表)实验要求: 1.建表 2.求表长 3.插入 4.查找 5.删除 6.列表 7.退出源程序:#include <stdio.h>#include <string.h>#include<stdlib.h> #define MaxSize 1000typedefstruct char xh40;char xm40;int cj;DataType; /学生的结构 typedef struct DataType dataMaxSize; /定义表的数据类型 int length; /数据元素分别放置在data0到datalength-1当中 SqList; /表的结构 void liebiao(SqList *L) /建立表格 int k,n;char q; printf("请输入,输入学生的个数:n");fflush(stdin); scanf("%d",&n); for(k=0;k<=n-1;k+) printf("请输入学生学号n");scanf("%s",L->datak.xh);printf("请输入学生名字n");scanf("%s",L->datak.xm);printf("请输入学生成绩n");scanf("%d",&L->datak.cj); L->length=n; void qb(SqList *L) /全部输出 int k,w;for(k=0;k<L->length;k+)w=k+1;printf("第%d位学生:",w); printf("%s %s %dn",L->datak.xh,L->datak.xm,L->datak.cj);int cr(SqList *L,DataType *xs,int i) /插入信息 int j; if(L->length=MaxSize) printf("没有!"); return 0; else if(i<0)|(i>L->length) printf("程序溢出,不符合"); return 0; else for(j=L->length-1;j>=i;j-) strcpy(L->dataj+1.xh,L->dataj.xh); strcpy(L->dataj+1.xm,L->dataj.xm); L->dataj+1.cj=L->dataj.cj; strcpy(L->datai.xh,xs->xh); strcpy(L->datai.xm,xs->xm); L->datai.cj=xs->cj; L->length=L->length+1; return 0; int cz(SqList *L) /查找信息 char xh40;char xm40;int cj;int i=0,u; printf(" 1、按学号查询 n"); printf(" 1、按姓名查询 n");printf(" 1、按成绩查询 n"); printf("请选择:");fflush(stdin); scanf("%d",&u); if (u=1) printf("请输入要查找学生的学号:"); scanf("%s",xh); for(i=0;i<L->length;i+) if(strcmp(L->datai.xh,xh)=0) return i; if (u=2) printf("请输入要查找学生的姓名:"); scanf("%s",xm); for(i=0;i<L->length;i+) if(strcmp(L->datai.xm,xm)=0) return i; if (u=3) printf("请输入要查找学生的成绩:"); scanf("%s",cj); for(i=0;i<L->length;i+) if(L->datai.cj,&cj) return i; return -1;/*如果没找到,返回-1 int cz2(SqList *L) /删除查找的函数 char xh40;char xm40;int i=0,h; printf(" 1、按 学 号 删除 n"); printf(" 2、按 姓 名 删除 n"); printf("请选择:");fflush(stdin); scanf("%d",&h); if (h=1) printf("请输入要删除学生的学号:"); scanf("%s",xh); for(i=0;i<L->length;i+) if(strcmp(L->datai.xh,xh)=0) /判断输入和已知学号一样不return i; else if (h=2) printf("请输入要删除学生的姓名:"); scanf("%s",xm); for(i=0;i<L->length;i+) if(strcmp(L->datai.xm,xm)=0) /判断输入姓名和已知姓名一样不 return i; return -1; void sc(SqList *L) /删除函数 int i,j; printf("请先选择您要删除的学生信息的方式:n");scanf("%d",&j); i=cz2(L); if(i=-1) printf("没有查到要删除的学生信息"); return; for(j=i;j<L->length;j+) / 要删除学生以后的学生整体上调一位 L->dataj.cj=L->dataj+1.cj; /就是后一个覆盖了前一个 strcpy(L->dataj.xh,L->dataj+1.xh); strcpy(L->dataj.xm,L->dataj+1.xm); L->length-; printf("该学生信息已被删除!n"); int bc(SqList *L)return (L->length);int main() /主体大函数 int i,k; SqList *L; /定义顺序表的指针 DataType *xs; L=(SqList *)malloc(sizeof(SqList)*MaxSize); char q; ee: rewind(stdin); printf(" 学生管理系统 n"); /函数的各个结构 printf(" n"); printf(" n"); printf(" n"); printf(" 建立表格请输入1 n"); printf(" 求表长 请输入2 n"); printf(" 插入 请输入3 n"); printf(" 查找 请输入4 n"); printf(" 删除请输入5 n"); printf(" 列表请输入6 n"); printf(" 退出请按0 n"); printf(" 请输入"); scanf("%c",&q);if(q=1)rewind(stdin);liebiao(L);goto ee;if(q=2)rewind(stdin);bc(L);printf("共%d个学生n",L->length);goto ee;if(q=3)rewind(stdin); printf(" 插 入 n");printf("tt 请 输 入 要 添 加 的 学 生 信 息: n");xs=(DataType *)malloc(sizeof(DataType); printf("请输入学生学号n");scanf("%s",xs->xh);printf("请输入学生名字n");scanf("%s",xs->xm);printf("请输入学生成绩n");scanf("%d",&xs->cj);printf("请输入要插入的位置:n");rewind(stdin); scanf("%d",&i); cr(L,xs,i); goto ee;if(q=4)rewind(stdin);printf(" 查 找 n");printf(" 查 询 学 生 信 息 n"); i=cz(L); if(i!=-1) printf("%s %s %dn",L->datai.xh,L->datai.xm,L->datai.cj); else printf("信息不存"); goto ee;if(q=5)rewind(stdin);printf(" 删 除 n");printf(" 删 除 学 生 信 息 n"); sc(L);goto ee; if(q=6) rewind(stdin);printf(" 列表 n");qb(L);goto ee; if(q=0) printf("谢谢使用n"); if(!(q=1|q=2|q=3|q=4|q=5|q=5|q=0) goto ee; system ("pause"); return 0; 输入1-6主程序: 建表 n=1 求表长 n=2 插入 n=3 查找 n=4 删除 n=5 列表 n=6退出输入学生个数n, 变量k建表: k=0; k<=n-1; 是 否 输入学号,姓名,成绩 k=k+1 结束输入查找学号n,变量k查找: k=0 n=k 是 否 k=k+1 输出输入插入位置n表长L变量k插入:输入错误 n<=L 是 否 k=0 n=k 是 否 k=k+1strcpy(L->dataj+1.xh,L->dataj.xh); strcpy(L->dataj+1.xm,L->dataj.xm); L->dataj+1.cj=L->dataj.cj 结束输入删除的位置n变量k表长L删除:输入错误 n<=L 是 否 k=0 n=k 否 是 k=k+1strcpy(L->dataj.xh,L->dataj-1.xh); strcpy(L->dataj.xm,L->dataj-1.xm); L->dataj.cj=L->dataj-1.cj 结束 输入表长L变量k列表: k<=L 是 否输出学号,姓名,成绩 k=k+1 结束实验目的:学生管理系统(链表)实验要求:1.建表2.删除3.列表4.退出源程序:#include<stdio.h>#include<string.h>#include<stdlib.h>struct xuesheng char xh7; char xm40; int cj; struct xuesheng *next; ;struct xuesheng *cha_ru(struct xuesheng *x) struct xuesheng *p,*q; int c; do if(x=0) x=(struct xuesheng *)malloc(sizeof(struct xuesheng); printf("input xh:"); scanf("%s",(*x).xh); printf("input xm:"); scanf("%s",(*x).xm); printf("input cj:"); scanf("%d",&(*x).cj); (*x).next=0; else p=x; while(*p).next!=0)p=(*p).next; q=(struct xuesheng *)malloc(sizeof(struct xuesheng); printf("input xh:"); scanf("%s",(*q).xh); printf("input xm:"); scanf("%s",(*q).xm); printf("input cj:"); scanf("%d",&(*q).cj); (*p).next=q; (*q).next=0; printf("ni hai ji xu me? 1/2:"); scanf("%d",&c); while(c=1); return(x); int link_len(struct xuesheng *x) struct xuesheng *p; int l=0; p=x; if(p!=0)do l=l+1; p=p->next; while(p!=0); return(l); struct xuesheng *shan_chu(struct xuesheng *x) struct xuesheng *p,*q,*t; int k,l,i; p=x; q=x; l=link_len(x); printf("input shan chu jie dian xu hao :"); scanf("%d",&k); if(k<=0|k>l)printf("error data!n"); if(k=1) x=p->next; t=p; free(t); if(k>1&&k<=l) for(i=1;i<=k-2;i=i+1)p=p->next; t=p->next; for(i=1;i<=k;i=i+1)q=q->next; p->next=q; free(t); printf("vvvvvvv shan chu wan bi ! vvvvvvvn"); return(x); void lie_biao(struct xuesheng *x) struct xuesheng *p; int l; p=x; if(p=0) printf("gai biao wei kong!n"); else do printf("%20s% 20s%7dn",(*p).xh,(*p).xm,(*p).cj); p=(*p).next; while(p!=0); l=link_len(x); printf(" l=%dn",l); main() struct xuesheng *s_head; int n; s_head=0; do printf("1:cha run"); printf("2:cha zhaon"); printf("3:shan chun"); printf("4:lie biaon"); printf("5:tui chun"); printf("input 1-5:"); scanf("%d",&n); switch(n) case 1: s_head=cha_ru(s_head);break; /* case 2: cha_zhao(s_head);break;*/ case 3: s_head=shan_chu(s_head);break; case 4: lie_biao(s_head);break; while(n=1|n=3|n=4); printf("n"); return 0; 框图: 输入n(1-4)主函数:1.建表 n=1 输入错误4.退出3.列表 n=3 n=22.删除 是 否 是 否 是 否 否 p.next=q q.next=0 p=p.next p->=0输入学号,姓名,成绩建表: 结束 是否继续 否 是 是 否定义表长L,k,i删除: 此表为空 k>0 否k=1 是 是 否输入错误x=p->next;t=p;free(t); L<=k 否 i=1; i<=k-2; 是 是 否 i<=k p=p->next; t=p->next; 否 free(t); q=q->next; p->next=q;=1 i=i+1; i=i+1; 结束总结:顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起长度,一旦分配内存,则在使用中不可以动态的更改。他的优点是访问数据是比较方便,可以随即的访问表中的任何一个数据,缺点是定义的长度不可更改造成存储空间的浪费。链表是通过指针来描述元素关系的一种数据结构,他可以是物理地址不连续的物理空间。不能随即访问链表元素,必须从表头开始,一步一步搜索元素。它的优点是:对于数组,可以动态的改变数据的长度,分配物理空间。建议:在使用中如果一个数组在使用中,查询比较多,而插入,删除数据比较少,数组的长度不变时,选顺序表比较合理。如果插入,删除,长度不定的数组,可以选链表。

    注意事项

    本文(顺序表链表情况总结实验报告.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开