数据结构实验报告1
- 格式:doc
- 大小:78.50 KB
- 文档页数:5
数据结构(1)实验(实习)报告
1、题目要求:
编写一个头文件SqList.h,实现顺序表的各种基本操作,并在此基础上设计一个主程序(exp2_1.cpp)完成如下功能:
(1)初始化顺序表L
(2)依次采用尾插法插入a,b,c,d,e元素
(3)输出顺序表L
(4)输出顺序表L的长度
(5)判断顺序表L是否为空
(6)输出顺序表L的第3个元素
(7)输出元素a的位置
(8)在第4个元素位置上插入f元素
(9)输出顺序表L
(10)删除L的第3个元素
(11)输出顺序表L
(12)释放顺序表L
2、设计
设计思路:选择顺序存储结构。包括初始化操作,插入操作,删除操作,销毁释放操作。
设计表示:每个操作及模块的伪码算法。列出每个过程或函数所调用和被调用的过程或函数。
3、调试分析
参数传递要细心,不然会很出现错误。
4、测试结果
插入元素为:abcde
插入元素的位置以及元素为:4,f
删除的位置以及元素为:3,c
查找的元素为:a
5、附录
#include
#include
#include
#define MaxSize 50
#define TRUE 1
#define FAULS 0
using namespace std;
typedef struct
{
char data[MaxSize];
int length;
}SqList;
//初始化顺序表
void CreateList(SqList *&L,char a[],int n)
{
L=(SqList *)malloc(sizeof(SqList));
for (int i=0;i { L->data[i]=a[i]; } L->length=n; } //新建顺序表 void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } //释放表 void DestroyList(SqList *&L) { free(L); } // int ListEmpty(SqList *L) { return (L->length==0); } //判断顺序表的长度 int ListLength(SqList *L) { return (L->length); } //删除元素 void DispList(SqList *L) { int i; for (i=0;i { printf("%c ",L->data[i]); } printf("\n"); } //查找元素 int GetElem(SqList *L,int i,char &e) { if (i<1|| i>L->length) return false; e=L->data[i-1]; return true; } //元素位置 int LocateElem(SqList *L,char e) { int i=0; while (i { i++; } if (i>=L->length) return 0; else return i+1; } //插入元素 int ListInsert(SqList *&L,int i,char e) { int j; if (i<1||i>L->length+1) return false; i--; for (j=L->length;j>i;j--) { L->data[j]=L->data[j-1]; } L->data[i]=e; L->length++; return true; } //删除元素 int ListDelete(SqList *&L,int i,char &e) { int j; if (i<1||i>L->length) { return false; } i--; e=L->data[i]; for (j=i;j L->data[j]=L->data[j+1]; L->length--; return true; } int main() { SqList *L; char e; cout<<"(1)初始化顺序表L"< InitList(L); cout<<"(2)依次采用尾插法插入a,b,c,d,e元素"< ListInsert(L,1,'a'); ListInsert(L,2,'b'); ListInsert(L,3,'c'); ListInsert(L,4,'d'); ListInsert(L,5,'e'); cout<<"(3)输出顺序表L:"; DispList(L); cout<<"(4)顺序表L长度="< cout<<"(5)顺序表L为"<<(ListEmpty(L)?"空":"非空")< GetElem(L,3,e); cout<<"(6)顺序表L的第3个元素="< cout<<"(7)元素a的位置="< cout<<"(8)在第4个元素位置上插入f元素"< ListInsert(L,4,'f'); cout<<"(9)输出顺序表L:"; DispList(L); cout<<"(10)删除L的第3个元素"< ListDelete(L,3,e); cout<<"(11)输出顺序表L:"; DispList(L);