数据结构2_2实验报告

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

仲恺农业工程学院实验报告纸

信息科学与技术(院、系)网络工程专业132 班《数据结构教程》

第二章上机实验题

1 实验目的

1.1理解线性表的逻辑结构特性;

1.2深入掌握线性表的两种储存方法,即顺序表和链表。体会这两种储存结构之间的差异;

1.3重点掌握顺序表和链表上各种基本运算的实现;

1.4综合运用线性表解决一些复杂的实际问题。

2 实验要求

2.1本实验要求每个同学单独完成;

2.2调试程序要记录调试过程中出现的问题及解决办法,并写入到实验总结和心得;

2.3对于算法设计题目,根据要求给出每个问题的算法结果截图,流程图和代码;

2.4编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌

握及应用,不断积累编程及调试经验;

2.5完成实验后直接在题目后面按要求给出本实验的实验报告。

3 实验设备、环境

奔腾以上计算机,装有VC++ 6.0软件。

4 实验内容(需含结果截图,相关算法流程图和代码)

代码:

#include

#include

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define NULL 0

typedef int Status;

typedef int ElemType;

typedef struct LNode

{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

Status InitList_L(LinkList &L) { //初始化线性表

L=(LinkList )malloc(sizeof(LNode)); //L指向头节点,头节点数据域为空L->next=NULL;

return OK;

}//InitList_L

Status DispList_L(LinkList &L) { //输出线性表

LinkList p=L->next;

while(p!=NULL)

{

printf("%c",p->data);

p=p->next;

}

return OK;

} // DispList_L

Status CreateList_L(LinkList &L,ElemType a[],int n) { //尾插法建表LinkList s,r;

int i;

L=(LinkList )malloc(sizeof(LNode));

r=L;

for(i=0;i

{

s=(LinkList )malloc(sizeof(LNode));

s->data=a[i];

r->next=s;

r=s;

}

r->next=NULL;

return OK;

}// CreateList_L

Status ListLength_L(LinkList L) { //求线性表的长度LinkList p=L;

int n=0;

while(p->next!=NULL)

{

n++;

p=p->next;

}

return(n);

}// ListLength_L

Status ListEmpty_L(LinkList L) { //判断单链表是否为空return(L->next==NULL);

}// ListEmpty_L

Status DestroyList_L(LinkList &L) { //销毁线性表LinkList p=L,q=p->next;

while(q!=NULL)

{

free(p);

p=q;

q=p->next;

}

free(p);

return OK;

}// DestroyList_L

Status GetElem_L(LinkList L, int i, ElemType &e) { // L为带头节点的单链表的头指针。// 当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR

int j=0;

LinkList p=L;

while(j

{

j++;

p=p->next;

}

if(p==NULL)

{

return ERROR;

}

else

{

e=p->data;

return OK;

}

}// GetElem_L

Status ListInsert_L(LinkList &L, int i, ElemType e) { //插入数据元素int j=0;

LinkList p=L,s; /* 找到插入节点的上一个元素,如果是头节点则退出,当i=1时表示头节点,i=2时,表示第一个元素 */

while(j

{

j++;

p=p->next;

}

if(p==NULL)

{

return ERROR;

}

else

相关文档
最新文档