线性表的顺序、链式表示及其应用
1.编写一个程序test1-1.cpp,实现顺序表的各种基本运算,本实验的顺序表元素的类型为char,完成如下实验要求:
(1)初始化顺序表L
(2)采用尾插法依次插入a、b、c、d、e
(3)输出顺序表L
(4)输出顺序表L的长度
(5)判断顺序表L是否为空
(6)输出顺序表的第3个元素
(7)输出元素a的逻辑位置
(8)在第4个元素位置上插入元素f
(9)输出顺序表L
(10)删除L的第3个元素
(11)输出顺序表L
(12)释放顺序表L
2.编写一个程序test1-2.cpp,实现单链表的各种基本运算,本实验的单链表元素的类型为char,完成如下实验要求:
(1)初始化单链表h
(2)采用尾插法依次插入a、b、c、d、e
(3)输出单链表h
(4)输出单链表h的长度
(5)判断单链表h是否为空
(6)输出单链表h的第3个元素
(7)输出元素a的逻辑位置
(8)在第4个元素位置上插入元素f
(9)输出单链表h
(10)删除单链表h的第3个元素
(11)输出单链表h
(12)释放单链表h
test1-1.cpp
#include<stdio.h>
#include<malloc.h>
#define MaxSize 60
typedef struct
{
char data[MaxSize];
int length;
}SqList;
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
void DispList(SqList *L)
{
int i;
for(i=0;i<L->length;i++)
printf("%c",L->data[i]);
printf("\n");
}
void ListLength(SqList *L)
{
printf("%d",L->length);
printf("\n");
}
bool ListEmpty(SqList *L)
{
return(L->length==0);
}
bool GetElem(SqList *L,int i)
{
if(i<1||i>L->length)
return false;
else
{
printf("%c",L->data[i-1]);
return true;
}
}
int LocateElem(SqList *L,char m)
{
int i=0;
while(i<L->length&&L->data[i]!=m)
i++;
if(i<L->length)
printf