C++ 版数据结构实现顺序表的各种功能
2018-03-29 15:35
387 查看
#include <iostream>
//#include "sequlist.h" //顺序表的头文件
using namespace std;
#define MAXSIZE 100
typedef int datatype;
typedef struct
{
datatype a[MAXSIZE];
int size;
}sequence_list;
//函数功能:顺序表的初始化——置空表
//函数参数:指向Sequence_list型变量的指针变量slt
//函数返回值:空
//文件名:sequlist.c,
//函数名:init()
void init(sequence_list *slt)
{
slt->size = 0;
} //顺序表的初始化——置空表
//函数功能:在顺序表后部进行插入操作
//函数参数:指向sequence_list型变量的指针变量slt datatype的类型的变量x
//函数返回值:空
//文件名:sequlist.c ,函数名:append()
//
void append(sequence_list *slt,datatype x)
{
if (slt ->size == MAXSIZE)
{
printf("顺序表是满的");
exit(1); //异常退出 如果是exit(0)是正常退出,就是你认为你的代码一切正常的时候
}
slt -> a[slt -> size] = x;
slt -> size = slt -> size + 1;
} //在顺序表后部进行插入工作
//函数功能:打印顺序表的各结点值
//函数参数:sequence_list型变量slt
//函数返回值:空
//文件名:sequlist.c.函数名:display()
void display(sequence_list slt)
{
int i;
if (!slt.size) printf("\n顺序表是空的!");
else
for(i = 0; i < slt.size;i++)
printf("%5d",slt.a[i]);
} //打印顺序表的各结点值
//函数功能:判断顺序表是否为空
//函数参数:sequence_list 型变量slt
//函数返回值:int 类型 1表示空,0 表示非空
//文件名:sequlist.c, 函数名:empty()
int empty(sequence_list slt)
{
return (slt.size == 0 ? 1 : 0);
} //判断顺序表是否为空
//函数功能:查找顺序表中值为X的结点位置
//函数参数:sequence_list型变量slt,datatype型变量X
//函数返回值:int 类型。返回x的位置值,-1表示没找到
//文件名:sequlist.c 函数名:find()
int find(sequence_list slt,datatype x)
{
int i =0;
while(i < slt.size && slt.a[i] != x) i++;
return (i < slt.size ? i : -1);
} //查找顺序表中值为x的结点位置
//函数功能;取得顺序表中地i个结点的值
//函数参数:sequence_list.c型变量slt,int型变量 i;
//函数返回值:datatype类型。 返回第i个结点的值
//文件名:sequlist.c 函数名:get()
datatype get(sequence_list slt,int i)
{
if(i < 0|| i>=slt.size)
{
printf("\n指定位置的结点不存在!");
exit(1);
}
else
return slt.a[i];
} //取得顺序表中地i个结点的值
void main()
{
int select = 1;
while (select)
{
cout<<"[1] init 置空表"<<endl;
cout<<"[2] append 表后部插入"<<endl;
cout<<"[3] display 打印顺序表的各结点值"<<endl;
cout<<"[4] empty 判断顺序表是否为空"<<endl;
cout<<"[5] find 查找顺序表中值为X的结点的值"<<endl;
cout<<"[6] get 取得顺序表第I个结点的值"<<endl;
cout<<" 请输入功能:";
cin>>select;
switch (select)
{
case 1:
void init(sequence_list *slt);
break;
case 2:
cout<<"请输入你要插入的数:";
void append(sequence_list *slt,datatype x);
break;
case 3:
cout<<"请输入你要插入的数:";
void display(sequence_list slt);
break;
case 4:
int empty(sequence_list slt);
break;
case 5:
int find(sequence_list slt,datatype x);
break;
case 6:
datatype get(sequence_list slt,int i);
break;
default:
break;
}
}
}
//#include "sequlist.h" //顺序表的头文件
using namespace std;
#define MAXSIZE 100
typedef int datatype;
typedef struct
{
datatype a[MAXSIZE];
int size;
}sequence_list;
//函数功能:顺序表的初始化——置空表
//函数参数:指向Sequence_list型变量的指针变量slt
//函数返回值:空
//文件名:sequlist.c,
//函数名:init()
void init(sequence_list *slt)
{
slt->size = 0;
} //顺序表的初始化——置空表
//函数功能:在顺序表后部进行插入操作
//函数参数:指向sequence_list型变量的指针变量slt datatype的类型的变量x
//函数返回值:空
//文件名:sequlist.c ,函数名:append()
//
void append(sequence_list *slt,datatype x)
{
if (slt ->size == MAXSIZE)
{
printf("顺序表是满的");
exit(1); //异常退出 如果是exit(0)是正常退出,就是你认为你的代码一切正常的时候
}
slt -> a[slt -> size] = x;
slt -> size = slt -> size + 1;
} //在顺序表后部进行插入工作
//函数功能:打印顺序表的各结点值
//函数参数:sequence_list型变量slt
//函数返回值:空
//文件名:sequlist.c.函数名:display()
void display(sequence_list slt)
{
int i;
if (!slt.size) printf("\n顺序表是空的!");
else
for(i = 0; i < slt.size;i++)
printf("%5d",slt.a[i]);
} //打印顺序表的各结点值
//函数功能:判断顺序表是否为空
//函数参数:sequence_list 型变量slt
//函数返回值:int 类型 1表示空,0 表示非空
//文件名:sequlist.c, 函数名:empty()
int empty(sequence_list slt)
{
return (slt.size == 0 ? 1 : 0);
} //判断顺序表是否为空
//函数功能:查找顺序表中值为X的结点位置
//函数参数:sequence_list型变量slt,datatype型变量X
//函数返回值:int 类型。返回x的位置值,-1表示没找到
//文件名:sequlist.c 函数名:find()
int find(sequence_list slt,datatype x)
{
int i =0;
while(i < slt.size && slt.a[i] != x) i++;
return (i < slt.size ? i : -1);
} //查找顺序表中值为x的结点位置
//函数功能;取得顺序表中地i个结点的值
//函数参数:sequence_list.c型变量slt,int型变量 i;
//函数返回值:datatype类型。 返回第i个结点的值
//文件名:sequlist.c 函数名:get()
datatype get(sequence_list slt,int i)
{
if(i < 0|| i>=slt.size)
{
printf("\n指定位置的结点不存在!");
exit(1);
}
else
return slt.a[i];
} //取得顺序表中地i个结点的值
void main()
{
int select = 1;
while (select)
{
cout<<"[1] init 置空表"<<endl;
cout<<"[2] append 表后部插入"<<endl;
cout<<"[3] display 打印顺序表的各结点值"<<endl;
cout<<"[4] empty 判断顺序表是否为空"<<endl;
cout<<"[5] find 查找顺序表中值为X的结点的值"<<endl;
cout<<"[6] get 取得顺序表第I个结点的值"<<endl;
cout<<" 请输入功能:";
cin>>select;
switch (select)
{
case 1:
void init(sequence_list *slt);
break;
case 2:
cout<<"请输入你要插入的数:";
void append(sequence_list *slt,datatype x);
break;
case 3:
cout<<"请输入你要插入的数:";
void display(sequence_list slt);
break;
case 4:
int empty(sequence_list slt);
break;
case 5:
int find(sequence_list slt,datatype x);
break;
case 6:
datatype get(sequence_list slt,int i);
break;
default:
break;
}
}
}
相关文章推荐
- 【数据结构】用C++实现顺序表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
- 《数据结构、算法与应用》9.(C++实现顺序表)
- 数据结构之C++实现顺序队列(SeqQueue)(无主函数)
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
- 【数据结构】用C++实现双链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
- c++实现数据结构1.顺序表
- 【c++版数据结构】之顺序表的实现
- 数据结构-栈:顺序栈与链栈的C++模板类实现
- 【C++】容器适配器实现栈Stack的各种功能(入栈、出栈、判空、大小、访问所有元素等)
- 【数据结构】用C++实现双循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
- 数据结构与算法之—顺序栈c++面向对象实现
- 数据结构(C++实现)--链表(2) 功能扩充
- 【c++版数据结构】之顺序表的实现
- 数据结构各种算法实现C++
- 数据结构--顺序表基本功能实现程序…
- 【C++】容器适配器实现队列Queue的各种功能(入队、出队、判空、大小、访问所有元素等)
- 顺序存储线性表的C++实现——严蔚敏版《数据结构》
- 顺序表功能实现c++
- 【C++】容器适配器实现栈Stack的各种功能(入栈、出栈、判空、大小、访问所有元素等)
- 数据结构——顺序队列的C++实现