1 / 8
文档名称:

数据结构单链表实验.doc

格式:doc   大小:59KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构单链表实验.doc

上传人:w447750 2017/9/11 文件大小:59 KB

下载得到文件列表

数据结构单链表实验.doc

文档介绍

文档介绍:洛阳理工学院实验报告
系别
计算机系
班级

学号
姓名
课程名称
数据结构
实验日期

实验名称
链表的基本操作
成绩
实验目的:
熟悉掌握线性表链式存储结构,掌握与应用查找、插入、删除等基本操作算法,训练和提高结构化程序设计能力及程序调试能力。
实验条件:
计算机一台,Visual C++
实验内容:
问题描述
以单链表为存储结构实现以下基本操作:
在第i个元素前插入一个新元素。
查找值为x的某个元素。若成功,给出x在表中的位置;不成功给出提示信息。
删除第i个元素,若成功,给出提示信息并显示被删元素的值;不成功给出失败的提示信息。
数据结构类型定义
typedef struct LinkNode
{
int Value;
struct LinkNode * Next;
}Node,*LinkList;
模块划分
(1)初始化链表:void InitList(LinkList * L);
(2)创建链表:尾插法:int CreateFromTail(LinkList L);
(3)在指定位置插入元素:int InsList(LinkList L,int i,int e);
(4)在指定位置删除元素:int DelList(LinkList L,int i,int *e);
返回值说明:返回ERROR插入失败,返回OK插入成功;
(5)按位置查找链表元素:int GetList(LinkList L,int i,int *e);
详细设计
void init_linklist(LinkList *l)/*对单链表进行初始化*/{
*l=(LinkList)malloc(sizeof(Node)); /*申请结点空间*/
(*l)->next=NULL; /*置为空表*/
}
void CreateFromHead(LinkList L)
{
Node *s;
char c;
int flag=1;
while(flag) /* flag初值为1,当输入"$"时,置flag为0,建表结束*/
{
c=getchar();
if(c!='$')
{
s=(Node*)malloc(sizeof(Node)); /*建立新结点s*/
s->data=c;
s->next=L->next;/*将s结点插入表头*/
L->next=s;
}
else
flag=0;
}
}
void CreateFromTail(LinkList L)
{
Node *r, *s;
char c;
int flag =1; /*设置一个标志,初值为1,当输入"$"时,flag为0,建表结束*/
r=L; /*r指针动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/
while(flag) /*循环输入表中元素值,将建立新结点s插入表尾*/
{
c=getchar();
if(c!='$')
{
s=(Node*)malloc(sizeof(Node));
s->data=c;
r->next=s;
r=s;
}