当前位置:文档之家› 实验一顺序表

实验一顺序表

注意事项:
在磁盘上创建一个目录,专门用于存储数据结构实验的程序。

因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。

实验一顺序表操作
一、实验目的
1、掌握使用VC++上机调试线性表的基本方法;
2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链接存储结
构上的运算。

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

2.上机运行本程序。

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

三、实验内容
例:程序1:顺序表基本操作的实现
这个程序中演示了顺序表的创建、插入和查找和合并。

程序如下:
#include<iostream.h>
#include "stdio.h"
#include<malloc.h>
#include<conio.h>
#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(i<p->length && 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;i<L->length;i++)
cout<<L->data[i]<<ends;
cout<<endl;
}
//主函数
void main()
{
PSeqList La,Lb,Lc;
int i;
cout<<"\n\n-------------------List Demo is running...----------------\n\n";
cout<<"First is InsertList function. "<<endl;
//创建第一个表
La=Init_SeqList();
cout<<endl<<"往La表中插入五个元素{1,2,3,4,5}"<<endl;
for(i=1;i<=5;i++)
Insert_SeqList(La,i,i);
PrintList(La);
cout<<"List A length now is "<<La->length<<endl;
getch(); //屏幕暂停,等候按任何键继续
//创建第二个表
Lb=Init_SeqList();
cout<<endl<<"往Lb表中插入五个元素{1,3,5,7,9}"<<endl;
for(i=1;i<=5;i++)
Insert_SeqList(Lb,i,2*i-1);
PrintList(Lb);
cout<<"List B length now is "<<Lb->length<<endl;
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 "<<Lc->length<<endl;
getch();
//翻转表
cout<<"翻转Lc表"<<endl;
Reverse_SeqList(Lc);
PrintList(Lc);
getch();
//求并集
cout<<"求并集"<<endl;
Union_SeqList(La,Lb,Lc);
PrintList(Lc);
cout<<"List C length now is "<<Lc->length<<endl;
getch();
//销毁表
Destroy_SeqList(&La);
Destroy_SeqList(&Lb);
Destroy_SeqList(&Lc);
}。

相关主题