实验1 线性表及其应用

  • 格式:doc
  • 大小:46.00 KB
  • 文档页数:3

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1 线性表及其应用

题目1 顺序表的建立与基本操作

一、实验目的

1. 通过实验,掌握include命令及头文件的使用

2. 通过实验,掌握顺序表的建立与输出

3. 通过实验,掌握顺序表的基本操作

二、实验内容

1. 练习顺序表的建立与输出

2. 练习顺序表的基本操作

三、实验前的准备

1. 理解并掌握顺序表的存储结构、基本操作

2. 复习include命令的使用

3. 预习实习指导书,并准备相关的程序清单

四、实验步骤与方法

(1)建立自己的工作目录

(2)在当前文件夹下建立函数结果状态代码的定义文件Status.h(课本p10(1)预定义常量和类型)和数据结构数据文件SqList.h(内容包括顺序表的描述、顺序表建立、顺序表的查询、插入、删除与输出等功能。)

(3)理解并运行下列程序:

#include

#include

#include "Status.h"

#include "SqList.h"

void main()

{

SqList a;

int i, k;

InitList_Sq(a);

printf("please input the data ,end of -99\n");

k = 0; scanf("%d",&i);

while (i != -99)

{

a.elem[k] = i; k++; scanf("%d",&i);

}

a.length = k;

printf("\n output the data:");

for (i = 0; i<=a.length-1; i++)

printf("%d ",a.elem[i]);

printf("\n");

}

(4)编写算法,通过调用SqList.h中的相关函数,完成顺序表中指定位置数据的输出、元素的插入和删除

题目2 链表的操作

一、实验目的

1. 通过实验,掌握链表的输入与输出

2. 通过实验,掌握链表的基本操作

二、实验内容

1. 建立自己的有关链表的头文件

2. 练习链表的输入与输出

3. 练习链表的基本操作的实现

4. 练习链表基本操作的应用

三、实验前的准备

1. 复习相关课程内容,理解并掌握链表基本操作算法

2. 准备相关的程序清单

3. 阅读实验指导书

四、实验步骤与方法

(一)建立自己的头文件“LinkList.h” ,内容包括单链表数据结构的说明,链表的建立与输出、插入与删除操作等

(二)理解并运行下面的程序

将用户输入的数据按头插入法建立一个带头结点的单链表。输入结点数据时以输入一串字符的方式实现,‟$‟字符为结束输入字符。

#include

#include

#include “LinkList.h ”

int count_head(LinkList head) /* 带头结点的单链表: 输出单链表元素值并计数*/ {

int i=0;

LinkList p;

p = head->next;

printf( “输出单链表元素值:” );

while(p != NULL)

{

printf( “%c”,p->data);

i++;

p = p->next;

}

printf( “ \n ” );

return i;

}

LinkList creatlink_head_head (LinkList &head) /* 用头插入法建立带头结点的单链表*/

{

LinkList t;

char ch;

t = (LinkLIst)malloc(sizeof(LNode));

head = t;

t->next = NULL;

printf( “ 单链表元素值为单个字符, 连续输入,$ 为结束字符: “ );

while((ch = getchar())!= … $ ‟ )

{

t = (LinkLIst) malloc(sizeof(LNode));

t->data = ch;

t->next = head->next;

head->next = t;

}

return(head);

}

main()

{

struct LNode *head = NULL;

int num;

pri ntf( “ \n 建立单链表\n\n ” );

head = creatlink_head_head(head);

fflush(stdin);/*清除缓冲区的内容*/

num = count_head(head);

printf( “ 单链表元素个数= %d\n ” , num);

}

运行情况如下:

输入:

输出:

(三)单链表基本操作的应用

编写算法,通过调用LinkList.h中的相关函数,完成单链表指定位置元素的插入、删除。