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

西华大学数学与计算机学院计算机系学生实验报告

数学与计算机学院计算机系实验报告

课程名称: 数据结构 指导教师: 黄襄念 实验名称:单链表的建立/查找/插入/删除 实验序号:实验 1 年级:2010 姓名: 学号: 实验时间:8:00—11:40 实验成绩: 实验教室:6A-413 实验日期:2012/6/10 实验学时:4

一、实验目的 熟悉的掌握链表的创建,和链表中结点查找、插入、删除。 二、实验环境 1. 操作系统:Windows7 2. 开发软件:Microsoft Visual C++ 6.0 三、实验内容  程序功能 本程序完成了以下功能: 1. 创建链表 2. 删除结点 3. 插入结点  数据结构 本程序中使用的数据结构 1. 它的优缺点 1) 能将物理地址散乱的链接在一起,更好的利用磁盘空间。 2) 能快速的添加结点和删除结点。 2. 逻辑结构图

开始

菜单

创 建 链 表

插 入 结 点

删 除 结 点

查 找 结 点

结束

第1 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

3. 存储结构图 Head

Num a[] Next

P

Num a[] Next

、、、、、、

4. 存储结构的 C/C++ 语言描述 struct LINK { int num; char a[20]; struct LINK *next; };  算法描述 本程序中采用的算法 1. 算法名称:创建链表 2. 算法原理或思想 是通过申请一个结构体指针,再通过结构体指针申请一个结点空间,录入数据后用 前一个结点的 Next 指针将新增加的结点与前面的结点链接,一次这样操作,就成 了一个链表 3. 算法特点 它能随意的添加结点,你需要多少就添加多少,不会浪费多余的空间,也不用提前 去预测需要多少空间。  程序说明 1. 系统流程图

Create(head) deleted(head) Main Menu find(head) add(head) 结 束

2. 程序模块(类或函数)代码:包括注释说明、模块功能、I/O 参数等 1)创建链表模块:将链表创建录入数据。 代码:void create(LINK *head) { LINK *p,*q; int i; p=head; q=p; while(1) { p=new LINK(); cout>p->num; cout

第2 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

cin>>p->a; cout>i; q->next=p; q=p; if(i==0) { p->next=NULL; coutnext; q=head; cout>i; coutnum==i) { q->next=p->next; break; } q=p; p=p->next; } if(p==NULL) { coutnext; q=head; cout>i;

} 3)

第3 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

while(p!=NULL) { if(p->num==i) { coutnumanext; } if(p==NULL) { coutnext; q=new LINK(); cout>q->num; cout>q->a; head->next=q; q->next=p; cout

第4 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

运行结果图 2

五、实验总结 1. 结果分析:本程序完成了链表的创建和插入、删除、查找功能;但是还是存在不完善 的地方,没有对数据进行排序,没有实现全体数据的输出功能。 2. 心得体会:通过这个实验我更熟练的掌握了链表、指针,觉得数据结构是一个很不错 的一门课程。

第5 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

代码:#include using namespace std; struct LINK { int num; char a[20]; struct LINK *next; };

void menu() { cout>p->num; cout>p->a; cout>i; q->next=p; q=p; if(i==0) { p->next=NULL; cout

第6 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

void deleted(LINK *head) { LINK *p,*q; int i; p=head->next; q=head; cout>i; coutnum==i) { q->next=p->next; break; } q=p; p=p->next; } if(p==NULL) { coutnext; q=head; cout>i; while(p!=NULL) { if(p->num==i) { coutnumanext; } if(p==NULL) { cout

第7 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

} } void add(LINK *head) { LINK *p,*q; p=head->next; q=new LINK(); cout>q->num; cout>q->a; head->next=q; q->next=p; cout

void main() { LINK *head; head=new LINK(); int i; menu(); while(1) { cout>i; switch(i) { case 1:create(head);break; case 2:add(head);break; case 3:deleted(head);break; case 4:find(head);break; case 0:exit(0); } } }

第8 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

数学与计算机学院计算机系实验报告

课程名称: 数据结构 指导教师: 黄襄念 实验名称:单链表的建立/查找/插入/删除 实验序号:实验 1 年级:2010 姓名: 学号: 实验时间:8:00—11:40 实验成绩: 实验教室:6A-413 实验日期:2012/6/10 实验学时:4

一、实验目的 熟悉的掌握链表的创建,和链表中结点查找、插入、删除。 二、实验环境 1. 操作系统:Windows7 2. 开发软件:Microsoft Visual C++ 6.0 三、实验内容  程序功能 本程序完成了以下功能: 1. 创建链表 2. 删除结点 3. 插入结点  数据结构 本程序中使用的数据结构 1. 它的优缺点 1) 能将物理地址散乱的链接在一起,更好的利用磁盘空间。 2) 能快速的添加结点和删除结点。 2. 逻辑结构图

开始

菜单

创 建 链 表

插 入 结 点

删 除 结 点

查 找 结 点

结束

第1 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

3. 存储结构图 Head

Num a[] Next

P

Num a[] Next

、、、、、、

4. 存储结构的 C/C++ 语言描述 struct LINK { int num; char a[20]; struct LINK *next; };  算法描述 本程序中采用的算法 1. 算法名称:创建链表 2. 算法原理或思想 是通过申请一个结构体指针,再通过结构体指针申请一个结点空间,录入数据后用 前一个结点的 Next 指针将新增加的结点与前面的结点链接,一次这样操作,就成 了一个链表 3. 算法特点 它能随意的添加结点,你需要多少就添加多少,不会浪费多余的空间,也不用提前 去预测需要多少空间。  程序说明 1. 系统流程图

Create(head) deleted(head) Main Menu find(head) add(head) 结 束

2. 程序模块(类或函数)代码:包括注释说明、模块功能、I/O 参数等 1)创建链表模块:将链表创建录入数据。 代码:void create(LINK *head) { LINK *p,*q; int i; p=head; q=p; while(1) { p=new LINK(); cout>p->num; cout

第2 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

cin>>p->a; cout>i; q->next=p; q=p; if(i==0) { p->next=NULL; coutnext; q=head; cout>i; coutnum==i) { q->next=p->next; break; } q=p; p=p->next; } if(p==NULL) { coutnext; q=head; cout>i;

} 3)

第3 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

while(p!=NULL) { if(p->num==i) { coutnumanext; } if(p==NULL) { coutnext; q=new LINK(); cout>q->num; cout>q->a; head->next=q; q->next=p; cout

第4 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

运行结果图 2

五、实验总结 1. 结果分析:本程序完成了链表的创建和插入、删除、查找功能;但是还是存在不完善 的地方,没有对数据进行排序,没有实现全体数据的输出功能。 2. 心得体会:通过这个实验我更熟练的掌握了链表、指针,觉得数据结构是一个很不错 的一门课程。

第5 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

代码:#include using namespace std; struct LINK { int num; char a[20]; struct LINK *next; };

void menu() { cout>p->num; cout>p->a; cout>i; q->next=p; q=p; if(i==0) { p->next=NULL; cout

第6 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

void deleted(LINK *head) { LINK *p,*q; int i; p=head->next; q=head; cout>i; coutnum==i) { q->next=p->next; break; } q=p; p=p->next; } if(p==NULL) { coutnext; q=head; cout>i; while(p!=NULL) { if(p->num==i) { coutnumanext; } if(p==NULL) { cout

第7 页 共8 页

西华大学数学与计算机学院计算机系学生实验报告

} } void add(LINK *head) { LINK *p,*q; p=head->next; q=new LINK(); cout>q->num; cout>q->a; head->next=q; q->next=p; cout

void main() { LINK *head; head=new LINK(); int i; menu(); while(1) { cout>i; switch(i) { case 1:create(head);break; case 2:add(head);break; case 3:deleted(head);break; case 4:find(head);break; case 0:exit(0); } } }

第8 页 共8 页


相关内容

  • 双向链表实验报告
  • 13软工转本1 钱剑滨 实验报告 双向链表实验报告 信息工程 系 13软工转本1 日期 2016年03月12日 姓名 钱剑滨 学号 13131116 电话 一. 实验内容 编写关于双向链表操作的C语言程序,要求包含双向链表的创建(生成).输出(遍历).查找.任意位置插入.有顺序插入.删除.等. 二. ...

  • 二叉排序树
  • 二叉排序树 1.二叉排序树定义 二叉排序树(Binary Sort Tree)或者是一棵空树:或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于根结点的值:若右子树不空,则右子树上所有结点的值均大于根结点的值. (2)左右子树也都是二叉排序树,如图6-2所示. 2.二叉排 ...

  • 单链表的初始化,建立,插入,查找,删除.
  • #include #include typedef int ElemType; //定义结点类型 typedef struct Node { ElemTypedata;             //单链表中的数据域 struct Node*next;         //单链表的指针域 }Node, ...

  • [数据结构]实验1
  • 实验1: 顺序表的操作实验 一.实验名称和性质 二.实验目的 1.掌握线性表的顺序存储结构的表示和实现方法. 2.掌握顺序表基本操作的算法实现. 3.了解顺序表的应用. 三.实验内容 1.建立顺序表. 2.在顺序表上实现插入.删除和查找操作(验证性内容). 3.删除有序顺序表中的重复元素(设计性内容 ...

  • 数据结构抽象数据类型的实现
  • 数据结构实验报告 题目:二叉树 学 院 计算机学院 专 业 软件工程 年级班别 2010级 4 班 学 号 学生姓名 指导教师 成 绩 ____________________ 2012年6月 .设计任务[Design Tasks] 完成二叉树的17中基本操作.如:二叉树中插入.删除节点或一棵子树. ...

  • 数据结构报告正文
  • 第一章 1.1数据结构课程设计要求. 1.1.1数据结构课程设计问题描述. 从键盘读入一组数据,建立二叉排序树并对其进行查找.遍历.格式化打印等有关操作. 1.1.2数据结构课程设计基本要求. 建立二叉排序树并对其进行查找,包括成功和不成功两种情况,并给出查找长度. 1.2.1数据结构课程设计测试数 ...

  • 二叉排序树的基本操作的实现
  • 二叉排序树的基本操作的实现 I. 设计要求 1. 问题描述 从磁盘读入一组数据,建立二叉排序树并对其进行查找..遍历.插入.删除等基本操作. 2. 需求分析 建立二叉排序树并对其进行查找,包括成功和不成功两种情况. II. 概要设计 为了实现需求分析中的功能,可以从以下3方面着手设计. 1. 主界面 ...

  • 人教版三年级下册信息技术教案
  • 第1课 用浏览器上网 教学目标: 知识目标:了解计算机网络的的知识. 技能目标:熟悉IE浏览器. 情感目标:能够浏览网站. 教学重.难点: 了解浏览器的使用方法,并能够浏览网站. 教学方法: 演示法.练习法.小组讨论 教学课时: 1课时 教学过程: 一.新课导入 目前,许多机构或个人都在因特网上建立 ...

  • 数据结构习题集答案
  • 第一章 概论 1. 单项选择题 1.1 B 1.2 C 1.3 A 1.4 D 1.5 A 1.6 D 1.7 D 1.8 A 1.9 D 1.10 B 2. 填空题 2.1 逻辑结构 2.2 查找 2.3 读取 2.4 插入 2.5 删除 2.6 更新 2.7 索引存储 2.8 执行算法所需要的时 ...