实验一顺序表

  • 格式:doc
  • 大小:41.00 KB
  • 文档页数:4

下载文档原格式

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

注意事项:

在磁盘上创建一个目录,专门用于存储数据结构实验的程序。因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。

实验一顺序表操作

一、实验目的

1、掌握使用VC++上机调试线性表的基本方法;

2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结

构上的运算。

二、实验要求

1.认真阅读和掌握本实验的程序。

2.上机运行本程序。

3. 将剩余的操作函数补齐,如删除,判空,有序表的合并,求并集等。

三、实验内容

例:程序1:顺序表基本操作的实现

这个程序中演示了顺序表的创建、插入和查找和合并。

程序如下:

#include

#include "stdio.h"

#include

#include

#define MAXSIZE 100

typedef int DataType ; //先设定数据元素的类型为整形

//定义顺序表的结构类型

typedef struct

{

DataType data[MAXSIZE];

int length;

} SeqList,* PSeqList;

//初始化顺序表

PSeqList Init_SeqList( ){

PSeqList p;

p=(PSeqList)malloc(sizeof(SeqList));

if (p)

p->length=0;

return p;

}

//销毁顺序表

void Destroy_SeqList(PSeqList *p){

if (*p)

free(*p);

*p=NULL;

}

//定位元素

int Location_SeqlList(PSeqList p,DataType x){

int i=0;

if (!p) {

printf("表不存在");

return -1;

}

while(ilength && p->data[i]!=x)

i++;

if(i>=p->length) return 0;

else return i+1;

}

//插入

int Insert_SeqList(PSeqList p, int i, DataType x){

}

//删除

int Delete_SeqList(PSeqList p, int i){

}

//翻转表

void Reverse_SeqList(PSeqList p){

}

//合并两个有序表

void Merge_SeqList(PSeqList La, PSeqList Lb, PSeqList Lc){ }

//求两个表的并集

void Union_SeqList(PSeqList La, PSeqList Lb, PSeqList Lc){ }

//打印表中元素值

void PrintList(PSeqList L)

{

int i;

for(i=0;ilength;i++)

cout<data[i]<

cout<

}

//主函数

void main()

{

PSeqList La,Lb,Lc;

int i;

cout<<"\n\n-------------------List Demo is running...----------------\n\n";

cout<<"First is InsertList function. "<

//创建第一个表

La=Init_SeqList();

cout<

for(i=1;i<=5;i++)

Insert_SeqList(La,i,i);

PrintList(La);

cout<<"List A length now is "<length<

getch(); //屏幕暂停,等候按任何键继续

//创建第二个表

Lb=Init_SeqList();

cout<

for(i=1;i<=5;i++)

Insert_SeqList(Lb,i,2*i-1);

PrintList(Lb);

cout<<"List B length now is "<length<

getch();

//合并有序表

cout<<"\nSecond is MergeList function.\n";

cout<<"Now Merge List A and List B.....\n";

Lc=Init_SeqList();

Merge_SeqList(La,Lb,Lc);

if(!Lc) return;

PrintList(Lc);

cout<<"List A length now is "<length<

getch();

//翻转表

cout<<"翻转Lc表"<

Reverse_SeqList(Lc);

PrintList(Lc);

getch();

//求并集