收藏 分销(赏)

线性表顺序存储运算的算法.doc

上传人:仙人****88 文档编号:8517017 上传时间:2025-02-16 格式:DOC 页数:6 大小:185.50KB 下载积分:10 金币
下载 相关 举报
线性表顺序存储运算的算法.doc_第1页
第1页 / 共6页
线性表顺序存储运算的算法.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
名字:庄智(201050405802) 上机实习一 一,题目:线性表顺序存储运算的算法实现 二,实验目的: 1.掌握线性表顺序存储结构的C语言描述 2.体会last域在算法实现所起的作用 3.理解合理的存储结构设计与算法实现的存在的关系 。 建立含有若干元素的顺序表,对刚建立的顺序表实现插入、删除、输出的操作,界面为菜单形式。 三,程序功能 和功能层次图: 主函数 调用菜单函数 调用创建函数 调用插入函数 调用删除函数 调用输出函数 程序结束 1、(菜单)主程序; 2、表的建立及初始化; 3、表的数据插入; 4、表的数据删除; 5、表的数据输出; 功能层次图为:四,运行结果 创建线性表 插入线性表 插入以后的结果表、、、、 删除线性表 删除以后的结果 插入错误 删除错误 五,小结 在做这个程序的时候,虽然遇到一些问题,但最后都被我解决, 自信心上得到比较大的提升,这也是这次实践最大的收获。同时,知识上的收获也是不可忽视的,亲手解决问题的过程也是很好的学习过程,并且积累了一些经验,相信会为以后的学习发展带来非常积极的帮助。 源代码: #include<stdio.h> #include<conio.h> #include<process.h> typedef int datatype; #define maxsize 1024 typedef struct { datatype data[maxsize]; int last; }sequenlist; char caidan() { char ch; do { printf("1:create list\n"); printf("2:insert to list\n"); printf("3:delete\n"); printf("4:display list\n"); printf("5:exit\n"); printf("Please choose:"); }while(ch=getch(),ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5'); return(ch); } int INSERT(sequenlist *L,int x, int i) { int j; if(L->last>=maxsize-1) { printf("\noverflow");getch();return NULL; } else { if(i<1||i>L->last+1) { printf("\nerror");getch();return NULL; } else { for(j=L->last;j>=i-1;j--) L->data[j+1]=L->data[j]; L->data[i-1]=x; L->last=L->last+1; printf("\nInsert Succeed\n");getch(); } return(1); } } int DELETE(sequenlist *L,int i) { int j; if(i<1||i>L->last+1) { printf("\nerror");getch();return NULL; } else { for(j=i;j<=L->last;j++) L->data[j-1]=L->data[j]; L->last--; printf("\nDelete Succeed\n");getch(); } return(1); } int INPUT(sequenlist *L) { int n,i,j=1; printf("\nPlease input number of data:"); scanf("%d",&n); for(i=0;i<n;i++,j++) { printf("Data[%d]:",j); scanf("%d",&L->data[i]); } return(n-1); } void DISPLAY(sequenlist *L,int n) { int i,j=1; for(i=0;i<n;i++,j++) printf("\nData[%d]:%d",j,L->data[i]); } void main() { sequenlist *L; char ch; int i,x; clrscr(); do{ clrscr(); ch=caidan(); printf("%c",ch); getch(); printf("\n"); switch(ch) { case'1': L->last=INPUT(L); printf("List was created successfully\n"); getch(); break; case'2': DISPLAY(L,(*L).last+1); printf("\n"); printf("Please input index u want to insert:"); scanf("%d",&i); printf("Please input data u want to insert:"); scanf("%d",&x); INSERT(L,x,i); break; case'3': DISPLAY(L,(*L).last+1); printf("\n"); printf("Please input index u want to delete:"); scanf("%d",&i); DELETE(L,i); break; case'4': DISPLAY(L,(*L).last+1);getch();printf("\n"); break; case'5': break; } }while(ch!='5'); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服