实验一顺序表
- 格式:doc
- 大小:41.00 KB
- 文档页数:4
注意事项:
在磁盘上创建一个目录,专门用于存储数据结构实验的程序。因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。
实验一顺序表操作
一、实验目的
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(i
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
cout< 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 "< 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 "< 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 "< getch(); //翻转表 cout<<"翻转Lc表"< Reverse_SeqList(Lc); PrintList(Lc); getch(); //求并集