篇一 :单链表实验报告

单链表实验报告

实验一 线性表基本操作的编程实现

--线性表在链表存储下的主要操作实现

一、需求分析

【实验目的】

通过本次实验,对课堂上线性表的知识进行巩固,进一步熟悉线性表的链接存储及相应的基本操作;并熟练掌握VC++ 6.0操作平台,学会调试程序,以及编写电子实验报告

【实验要求】

编写线性表的基本操作,有构造线性表,线性表的遍历,插入,删除,查找,求表长等基本功能,在此基础上能够加入DOS下的图形界面以及学会文件的操作等功能,为以后的学习打下基础。

【实验任务】

(1).线性表基本操作的编程实现,掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结构中任选,可以完成部分主要功能,也可以用菜单进行管理完成大部分功能。还鼓励学生利用基本操作进行一些更实际的应用型程序设计。

(2).用菜单管理,把线性表的顺序存储和链表存储的数据插入、删除运算进行程序实现。建议实现键盘数据输入实现改实验的通用性。为了体现功能的正常性,至少要编制遍历数据的函数.

(3).注意事项:开发语言使用C++,尽量使用面向对象的思想和实现方法,可以改编成应用软件.

【实验类型】

验证型实验

二、概要设计

需要实现线性表的以下功能:

1、创建单链表

2、删除链表中的某个结点

3、输出单链表(遍历)

4、释放结点所占空间

5、查找第i个结点

6、插入一个结点

7、求链表的长度

二、详细设计

(1).数据结构

线性表的线性结构觉决定了它的性质:数据元素之间是一种线性关系,数据元素一个接一个的排列,除了最后一个数据,其他的数据面临的下一个数据有且仅有一个。

(2) .存储结构

单链表采用一个结点存放一个数据元素,每个结点除了包括存放数据元素值的数据域(data)外,还包括指向下一个元素的存储位置的指针域(next)。最后一个结点的指针域为空。

…… …… 余下全文

篇二 :数据结构单链表实验报告

一、        设计人员相关信息

1.      设计者姓名、学号和班号:12地信李晓婧 12012242983

2.      设计日期:2014.

3.      上机环境:VC++6.0

二、        程序设计相关信息

1.      实验题目:编写一个程序,实现单链表的各种基本运算(假设单链表的元素类型为char),并在此基础上设计一个程序,完成如下功能:

(1)    初始化单链表;

(2)    采用尾插法依次插入元素a,b,c,d,e;

(3)    输出单链表

(4)    输出单链表长度

(5)    判断单链表是否为空

(6)    输出单链表第3个元素

(7)    输出元素a的位置

(8)    在第4个元素位置上插入元素f

(9)    输出单链表

(10)删除第三个元素

(11)输出单链表

(12)释放单链表

2.      实验项目组成:

(1)   插入和删除节点操作

(2)   建立单链表

尾插法建表

(3)   线性表基本运算在单链表中的实现

…… …… 余下全文

篇三 :链表实验报告

数据结构实验报告

姓名; ** 学号: ** 专业: 电子商务 班 级: 10-1班

指导教师: 实验时间: 实验地点:新区实验楼4楼

(实验题目)单链表实验

1.实验内容和要求

1.1实验要求

1 本次实验中的链表结构均为带头结点的单链表;

2 链表结构定义,算法实现放入库文件“linkList.h”;

运算和变量命名直观易懂,并有相应的注释

1.2实验内容

<1>求链表中第i个结点的指针(函数),若不存在,则返回NULL。

<2>在第i个结点前插入值为x的结点。

<3>删除链表中第i个元素结点。

<4>在一个递增有序的链表L中插入一个值为x的元素,并保持其递增有序特性。

<5>将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),申请2个头结点,把分开的奇数项和偶数项分别链接到这2个头结点上,然后再将 这两个新链表同时输出在屏幕上,并保留原链表的显示结果,以便对照求解 结果。

<6>求两个递增有序链表L1和L2中的公共元素,并以同样方式连接成链表L3。

2.实验目的

2.1 理解线性表的链式存储结构。

2.2熟练掌握单链表结构及有关算法的设计。

2.3根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。

3.数据结构设计

<1>求链表中第i个结点的指针(函数),若不存在,则返回NULL。

实验代码

node *L,*p;

int i;

createNode(*&L); //尾插法创建一个链表,

cout<<"链表包含:"<<endl;

p=L->next;

while(p)

{

cout<<p->data<<",";

…… …… 余下全文

篇四 :数据结构课程单链表实验报告

郑州轻工业学院

《数据结构》课程实验

题目:       单链表表的基本操作及c语言实现    

专业:         信息管理与信息系统     

班级:               11-01                  

姓名:            高博文                         

完成日期:         2013/5/23             

一、  试验内容

用c语言实现单链表的建立插入删除查找,合并等内容

…… …… 余下全文

篇五 :数据结构单链表实验报告

《数据结构》课程实验报告

注:空间不够,可以增加页码。

…… …… 余下全文

篇六 :单链表操作实验报告

线 性 表

一、实验目的

1. 了解线性表的逻辑结构特征,以及这种特性在计算机内的两种存储结构。

2. 掌握线性表的顺序存储结构的定义及其C语言实现。

3. 掌握线性表的链式村粗结构——单链表的定义及其C语言实现。

4. 掌握线性表在顺序存储结构即顺序表中的各种基本操作。

5. 掌握线性表在链式存储结构——单链表中的各种基本操作。

二、实验要求

1. 认真阅读和掌握本实验的程序。

2. 上机运行本程序。

3. 保存和打印出程序的运行结果,并结合程序进行分析。

4. 按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果

三、实验内容

请编写C程序,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;然后在屏幕菜单中选择0,即可结束程序的运行。

四、解题思路

本实验要求分别写出在带头结点的单链表中第i(从1开始计数)个位置之后插入元素、创建带头结点的单链表中删除第i个位置的元素、顺序输出单链表的内容等的算法。

五、程序清单

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

typedef int ElemType;

typedef struct LNode

{ ElemType data;

struct LNode *next;

}LNode;

LNode *L;

LNode *creat_L();

void out_L(LNode *L);

void insert_L(LNode *L,int i,ElemType e);

ElemType delete_L(LNode *L,int i);

…… …… 余下全文

篇七 :数据结构单链表插入、删除和修改实验报告

计算机学院

实验报告

课程名称:     数据结构         

实验名称:单链表  

学生姓名:朱孝彬            

学生学号: 20110511001   

实验日期: 2012           

一、实验目的

1.理解数据结构中带头结点单链表的定义和逻辑图表示方法。

2.掌握单链表中结点结构的C++描述。

3.熟练掌握单链表的插入、删除和查询算法的设计与C++实现。

二、实验内容

1. 编制一个演示单链表插入、删除、查找等操作的程序。

三、实验步骤

1.需求分析

本演示程序用C++6.0编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。

① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都是整数。

② 输出的形式:在所有三种操作中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。
  ③ 程序所能达到的功能:完成单链表的生成(通过插入操作)、插入、删除、查找操作。

④ 测试数据:

 A. 插入操作中依次输入11,12,13,14,15,16,生成一个单链表
   B. 查找操作中依次输入12,15,22返回这3个元素在单链表中的位置
   C. 删除操作中依次输入2,5,删除位于2和5的元素

…… …… 余下全文

篇八 :数据结构实验报告(C语言)单链表的基本操作

数据结构实验报告C语言单链表的基本操作

计算机科学与技术系

实 验 报 告

专业名称 计算机科学与技术 课程名称 数据结构与算法 项目名称 单链表的基本操作 班 级

学 号

姓 名

实验日期

格 式 要 求

实验报告注意格式规范,要求在word中编写,文中不要有空行,统一使用A4页面。

页边距:上2.5cm、下2cm、左2.5cm、右2cm。

标题:宋体、四号字、加粗、1.5倍行距。

正文:宋体、小四号字、1.2倍行距。

一、实验目的与要求:

(一)实验目的

1.理解排序算法基本思想。

2.掌握在顺序表上各种排序算法的实现。

3.对线性表排序算法的时间复杂度进行分析。

4.理解顺序表数据结构的特点(优缺点)和适用环境。

(二)实验要求

1.定义一链表类型,并定义带有头结点的单链表。

2.将教材中链表的建立、初始化、插入、删除等函数实现。

3.由主函数按照用户要求对各个链表操作访问。

4.每次操作之前要有明确的说明,操作后要输出操作结果。

5.分析顺序表链表的插入、删除、查找的时间和空间复杂度。

二、实验方法:(代码)

#include<stdio.h>

#include<malloc.h>

typedef struct Pnode

{

int coef;

int exp;

struct Pnode *next;

}Polynode;

typedef struct node

{

int data;

struct node *next;

}LinkList;

//多项式链表的生成

Polynode *PLcreate(Polynode *H)

{

Polynode *R,*S;

int c,e;

H=(Polynode *)malloc(sizeof(Polynode));

…… …… 余下全文