数据结构实验报告及答案

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

实验报告

实验课程:

学生姓名:

学号:

专业班级:

2013年 2 月 25 日

目录

实验1 线性表 (3)

实验2 栈与队列 (11)

实验3 串 (15)

实验4 数组与广义表 (18)

实验5 二叉树的操作 (21)

实验6 图的操作 (25)

实验7 查找的操作 (29)

实验8 排序的操作 (34)

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证□综合□设计□创新实验日期:2013-4-12 实验成绩:实验1 线性表

一.实验目的

1.熟悉线性表抽象数据类型的表示和实现方法。

2.掌握线性表上的基本操作。

二.实验基本原理

IDE环境中进行C程序开发的基本过程

三.主要仪器设备及耗材

PC微型计算机系统

DOS操作系统或Windows 操作系统

Turbo C 集成开发环境、Visual C++ 开发环境、或其它C语言开发环境。四.实验步骤

1.进入所选择的IDE环境。

2.书写程序源代码。

3.调试程序。

4.验证程序。

五.实验项目

顺序表代码:

linearList.h文件内代码为

#define OK 1

#define ERROR 0

#define TURE 1

#define FALSE 0

typedef int status ;

typedef int ElemType;

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

typedef struct

{

ElemType *elem;

int length;

int listsize;

}SqList;

status InitList_Sq(SqList **L);

status ListInsert_Sq(SqList *L,int i,ElemType e);

status ListDelete_Sq(SqList *L,int i);

int LocateElem(SqList *L, ElemType e);

LinearList.c文件内部代码

# include

# include"LinearList.h"

status InitList_Sq(SqList **L)

{

*L=(SqList*)malloc(sizeof(SqList));

(**L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

(**L).length=0;

(**L).listsize=LIST_INIT_SIZE;

return OK;

}

status ListInsert_Sq(SqList *L,int i,ElemType e)

{

ElemType *newbase,*p,*q;

if (i<1||i>L->length+1)

{

return ERROR;

}

if (L->length>=L->listsize)

{

newbase=(ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));

L->elem=newbase;

L->listsize+=LISTINCREMENT;

}

q=&(L->elem[i-1]);

for (p=L->elem+L->length-1;p>=q; p--)

{

*(p+1)=*p;

}

*q=e;

L->length++;

return OK;

}

status ListDelete_Sq(SqList *L,int i)

{

ElemType *q,*p;

if (i<1||i>L->length)

{

return ERROR;

}

p=&(L->elem[i]);

for (q=L->elem+L->length-1;p<=q;p++)

{

*(p-1)=*p;

}

L->length--;

return OK;

}

int LocateElem(SqList *L, ElemType e)

{

int i=0;

while (ilength && L->elem[i]!=e) i++;

if (i>=L->length)

return 0;

else

return i+1;

}

Main.c 文件代码为#include

#include"LinearList.h"

void printfElems(SqList *L)

{

int i;

for ( i = 0; i < L->length; i++)

{

printf("%d ",L->elem[i]);

}

printf("\n");

}

void main()

{

SqList *list;

InitList_Sq(&list);//初始化顺序表

ListInsert_Sq(list,1,10);// 把10插入第一位置

ListInsert_Sq(list,1,9);// 把9插入第一位置

ListInsert_Sq(list,1,8);// 把8插入第一位置

ListInsert_Sq(list,1,7);// 把7插入第一位置

printfElems(list); //打印出所有元素

ListDelete_Sq(list,1);//删除

printf("删除第一个之后\n");

printfElems(list); ////打印出所有元素

printf("第%d个元素是 10",LocateElem(list,10));//查找元素10的位置}

相关文档
最新文档