数据结构实验报告1

  • 格式:doc
  • 大小:78.50 KB
  • 文档页数:5

下载文档原格式

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

数据结构(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;ilength;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 (ilength&&L->data[i]!=e)

{

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;jlength-1;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);