您的位置:首页 > 理论基础 > 数据结构算法

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;
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 数据结构