数据结构实验1

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

数据结构《实验1》实验报告

实验项目1:线性表存储及运算

学号1309030322 姓名曹思远课程号

实验地点指导教师时间

评语:

按时完成实验;实验内容和过程记录完整;回答问题完整、

正确;实验报告的撰写认真、格式符合要求;无抄袭的行为。

成绩

教师签字

线性表链式存储(双向链表)插入、删除运算

1、预习要求:线性表的插入、删除相关概念及运算,完成线性表元素的插入、删除。

2、实验目的:

(1)了解线性表的插入、删除相关概念;

(2)理解线性表的插入、删除过程和结构定义;

(3)掌握算法转换为程序的过程中的变化。

3、实验内容及要求:

(1)分别建立包含10个数据元素的链式存储线性表;

(2)从键盘输入一个数据元素,插入到线性表中第k(包含0号位置)个位置;

(3)从键盘输入一个数据元素关键字或位置k(包含1号位置),从线性表中删除相应数据元素;

(4)给出程序及插入、删除前和插入、删除后线性表结果。

4、实验设备(环境)及要求

硬件:支持 Intel Pentium Ⅱ及其以上 CPU ,内存 128MB 以上、硬盘 1GB 以上容量的微机。

软件:配有 Windows98/2000/XP 操作系统,安装 Visual C++ 。

5、实验时间:6学时

6、该文档的文件名不要修改,存入<学号> <姓名> 命名的文件夹中

7、该表中的数据只需填空,已有内容不要修改

实验结果(运行结果界面及源程序,运行结果界面放在前面):

#define STUDENT EType //#define bool Status

#define HeadEType int

#include

#include

#include

#include using namespace std;

//以下是数据类型的定义

enum Status{OK, ERROR};

typedef struct

{

char number[10];

char name[10];

char sex[4];

char age[4];

char place[20];

}STUDENT;

struct DoubleNode

{

EType data;

DoubleNode *plink;

DoubleNode *nlink;

};

struct HeadNode

{

HeadEType Hdata;

DoubleNode *first;

};

typedef HeadNode *DoubleChainList;

void Creat(DoubleChainList &L)

{// 构造一个空链表

L=new HeadNode;

L->first=NULL;

//L->Hdata="HeadNode的数据值";

}

void Output(DoubleChainList &L)

{// 逐个地输出链表L中的数据元素

DoubleNode *current=L->first;

while(current)

{

cout<data.number<<" "<<<" "<data.sex<<" "<data.age<<" "<data.place<

current=current->nlink;

}

}

int Length(DoubleChainList &L)

{// 返回链表L中数据元素结点数

DoubleNode *current=L->first;

int len=0;

while(current)

{

len++;

current=current->nlink;

}

return len;

}

void Destroy(DoubleChainList &L)

{// 删除链表L中所有数据结点,并释放结点空间

DoubleNode *current;

current=L->first;

while(L->first)

{

current=current->nlink;

delete L->first;

L->first=current;

}

}

bool GetElem(DoubleChainList &L,int k,EType &x)

{ //L中第k个元素取至x中,如不存在返回false,找到返回true,x带回if(k<1)return false;

DoubleNode *current=L->first;

int index=1;

while(index

{

current=current->nlink;

index++;

}

if(current)

{

x=current->data;

return true;

}

return false;

}

相关文档
最新文档