欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

单链表的建立查找插入删除

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

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

单链表的建立查找插入删除

数学与计算机学院计算机系实验报告课程名称: 数据构造年级:实验成绩:指引教师: 黄襄念姓名:abraham 实验教室:6A-412实验名称:单链表的建立/查找/插入/删除学号: 实验日期:/12/16实验序号:实验1实验时间:6:409:50实验学时:4撰写阐明:填写上面有关栏目,须作相应修改。仔细阅读:最后“六、提交文档规定”有关阐明。一、 实验目的1.熟悉掌握链表的创立、链表的常用算法:如查找节点,删除节点,插入节点等等。二、实验环境1. 操作系统:Windows XP2. 开发软件:VC+6.0三、实验内容l 程序功能本程序完毕了如下功能:1. 可以逐个添加英文字到链中。2. 可以删除链中的任意一元素而保持其她元素整体不变。3. 可以查找链表中的任意一种元素,只要输入该元素在链表中的位置,就可以查找到该元素。4. 可以在该链表中插入任意一种元素不变化整体的顺序,输入你要插入的位置即可。l 数据构造本程序中使用的数据构造(若有多种,逐个阐明):1. 它的优缺陷1) 能将物理地址散乱的链接在一起,更好的运用空间,可以动态的申请空间,如使用数组未必能申请到持续的空间但是用链表就可以解决这个问题。2) 能迅速的删除节点,和增添节点。2. 逻辑构造图开始创建链表插入节点删除节点查找节点结束 3. 存储构造图 Head mNumNextNumNext 4. 存储构造的C/C+ 语言描述typedef struct node char data; struct node *next;link;l 算法描述(结合流程图或伪代码描述算法,若无可略)本程序中采用的算法(若有多种,逐个阐明)1. 算法名称:创立链表 2. 算法原理或思想通过申请一种构造体指针,在用成果体指针申请一种空间,在输入信息后用前一种节点的Next指针将增长的结点与前面的结点链接,如此反复操作,就形成一种链表。3. 算法特点(优缺陷,与可选或同类算法作对比)与数组相比较,是不持续的,它能随意的添加结点你需要多少就添加多少不会挥霍多余的空间也不用提前去预测需要多少空间而其她的要考虑通用性,就必须申请较大的空间,而导致空间的挥霍。l 程序阐明1. 系统流程图(各个函数或类的调用流程图) MainCreate(head)Deleted(head)Find(head)Ins(head)退出2、程序模块(类或函数)代码:涉及注释阐明、模块功能、I/O参数等1) 创立链表模块:将链表创立录入数据。typedef struct node char data; struct node *next;link;link * get(link *m, int i) link *p;int j=0; p=m; while(j<i) && (p->next!=NULL) p=p->next;j+; if(j=i) return p; else return NULL;2) 删除模块:将链表中不需要的节点数据删除。link * del(link *m, int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout<<"输入有误"<<endl; else s=p->next; p->next=s->next; free(s); return m;3) 查找模块:查找你想要的信息。link * find(link *m, char ch) link *p; int i=0; int j=0; p=m; while(p!=NULL) i+; if(p->data!=ch) p=p->next; else cout<<"您查找的数据在第"<<i-1<<"个位置."<<endl; j=1;p=p->next; if(j!=1) cout<<"您查找的数据不在线性表中."<<endl; return m;4) 添加模块:添加你还需要添加的信息到链表中。link * ins (link *m, char ch,int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout<<"输入有误"<<endl; else s=(link *)malloc(sizeof(link); s->data=ch; s->next=p->next; p->next=s; return m;5)打印模块:打印出信息。link * print(link *m) int i,k; char ch; link *p,*q; cout<<"目前线性表为:"<<endl; p=m;p=p->next; if(m!=NULL) do cout<<p->data<<" " p=p->next; while(p!=NULL);四、调试与运营1. 程序调试调试:程序开发过程不也许没有BUG,你用了哪些手段或措施发现并改正错误。本程序开发过程中,采用的调试措施或手段如下:1) 措施: 输出某些连表中的数据,看能不能正常显示,调试数据与否对的的录入了。2. 运营成果(贴图,JPG格式) 本次实验多种功能需分别截图,逐个阐明。运营成果图1 运营成果图2运营成果图3五、实验总结1. 成果分析:本程序完毕了对链表的创立和插入、删除、查找功能,但是还没有对字符串进行排序,2. 心得体会:通过这个实验让我掌握了了链表,指针等知识六、源代码#include <iostream>using namespace std;typedef struct node char data; struct node *next;link;link * get(link *m, int i) link *p;int j=0; p=m; while(j<i) && (p->next!=NULL) p=p->next;j+; if(j=i) return p; else return NULL;link * ins (link *m, char ch,int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout<<"输入有误"<<endl; else s=(link *)malloc(sizeof(link); s->data=ch; s->next=p->next; p->next=s; return m;link * find(link *m, char ch) link *p; int i=0; int j=0; p=m; while(p!=NULL) i+; if(p->data!=ch) p=p->next; else cout<<"您查找的数据在第"<<i-1<<"个位置."<<endl; j=1;p=p->next; if(j!=1) cout<<"您查找的数据不在线性表中."<<endl; return m;link * del(link *m, int i) link *p,*s; p=get(m,i-1); if(p=NULL) cout<<"输入有误"<<endl; else s=p->next; p->next=s->next; free(s); return m;link * print(link *m) int i,k; char ch; link *p,*q; cout<<"目前线性表为:"<<endl; p=m;p=p->next; if(m!=NULL) do cout<<p->data<<" " p=p->next; while(p!=NULL); cout<<endl; cout<<"请选择您要的操作:" cout<<" 1、插入" cout<<" 2、查找" cout<<" 3、删除" cout<<" 0、退出" cout<<endl; cin>>k; if(k=1) cout<<"请输入您要插入的数据值:" cin>>ch; cout<<"请输入您要插入的位置:" cin>>i; p=ins(m,ch,i); q=print(m); else if(k=2) cout<<"请输入您要查找的数据值:" cin>>ch; p=find(m,ch); q=print(m); else if(k=3) cout<<"请输入您要删除的数据的位置:" cin>>i; p=del(m,i); q=print(m); else if(k=0) ; else cout<<"输入错误!"<<endl; q=print(m); return m;int main() cout<<"请输入一串单字符数据,以*结束!"<<endl; char ch; link *r,*p,*q,*m; m=(link *)malloc(sizeof(link); m->next=NULL; r=m; ch=getchar(); while(ch!='*') p=(link *)malloc(sizeof(link); p->data=ch;p->next=NULL; r->next=p;r=r->next; ch=getchar(); q=print(m); return 0;

注意事项

本文(单链表的建立查找插入删除)为本站会员(回****)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

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




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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