《数据结构》线性表(顺序存储结构(顺序表的)实现示例代码)
线性表(Sequential List)顺序存储结构, 占用连续内存,随机存取的方式,本代码实现初始化、插入、删除功能,使用VC6.0作为平台。
代码分三部分:
1.模板类的声明,放在一个头文件中(SequenList.h)。这样做的目的是,增加程序的复用性,可以在其它程序调用。本例中由2源文件调用。
2.类的定义,放在一个源文件(SequenList.cpp)中。
3.工程文件(sequenlistMain.cpp),针对实例,班级同学成绩进行实际操作。数据类型为整数(希望大家能换成一个结构体类型)。
1.SequenList.h
const int MaxSize = 30;
template //定义模板类SeqList
class SeqList
{
public:
SeqList( ) {length = 0;
}//无参构造函数,建立空顺序表
SeqList(T a[ ], int n);
//有参构造函数,建立长度为n的顺序表
~SeqList( ) { }//析构函数
int Length( ) {return length;
}//求线性表的长度
T Get(int i);
//按位查找,在表中查找第i个元素
int Locate(T x );
//按值查找,在表中查找值为x的元素序号
void Insert(int i, T x);
//插入操作,在表中第i个位置插入值为x的元素
T Delete(int i);
//删除操作,删除表的第i个元素
void PrintList( );
//遍历操作,按序号依次输出各元素
private:
T data[MaxSize];
//存放数据元素的数组
int length;
//线性表的长度
};
2.SequenList.cpp
#include "SeqList.h"template
SeqList :: SeqList(T a[ ], int n)
{
if (n > MaxSize) throw "error";
for (int i = 0;
i < n;
i++)
data[i] = a[i];
length = n;
}template
T SeqList :: Get(int i)
{
if (i < 1 && i > length) throw "查找位置非法";
else return data[i - 1];
}template
int SeqList :: Locate(T x)
{
for (int i = 0;
i < length;
i++)
if (data[i] == x) return i+1;
//下标为i的元素等于x,返回其序号i+1
return 0;
//退出循环,说明查找失败
}template
void SeqList :: Insert(int i, T x)
{
if (length >= MaxSize) throw "上溢错误";
if (i < 1 || i > length + 1) throw "位置";
for (int j = length;
j >= i;
j--)
data[j] = data[j - 1];
//注意第j个元素存在数组下标为j-1处
data[i - 1] = x;
length++;
}template
T SeqList :: Delete(int i)
{
if (length == 0) throw "下溢";
if (i < 1 || i > length) throw "位置";
T x = data[i - 1];
//取出位置i的元素
for (int j = i;
j < length;
j++)
data[j - 1] = data[j];
//注意此处j已经是元素所在的数组下标
length--;
return x;
}template
void SeqList :: PrintList( )
{
for (int i = 0;
i < length;
i++)
cout << data[i];
//依次输出线性表的元素值
}
3.sequenlistMain.cpp
#include //引用输入输出流库函数的头文件
using namespace std;
#include "SequenList.cpp"//引用顺序表的类声明和定义
void main( )
{
int score[5]={99, 93, 89, 76,88};
SeqList ScoreList(score, 5);
cout<<"执行插入操作前数据为:"<
【《数据结构》线性表(顺序存储结构(顺序表的)实现示例代码)】
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术
- 书评——《小行星》