实验1 线性表及其应用
- 格式:doc
- 大小:46.00 KB
- 文档页数:3
实验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中的相关函数,完成单链表指定位置元素的插入、删除。