数据结构之线性表顺序存储实现-顺序表(C++)
#include <iostream>
using namespace std;
//核心代码
const int MaxSize = 100;
template <class DataType>
class SeqList
{
private:
DataType data[MaxSize]; //存放数据元素的数组,注意:线性表的第1个元素存放在数组下标为0的位置,以此类推
int length; //线性表的长度
public:
SeqList(){length=0;} //无参构造函数,建立长度为0的顺序表
SeqList(DataType a[],int n); //有参构造函数,建立长度为n的顺序表
~SeqList(){} //析构函数为空
int Length(){return length;} //求线性表的长度
DataType Get(int i); //按位查找,查找第i个元素
int Locate(DataType x); //按值查找,查找元素值为x的元素序号
void Insert(int i,DataType x); //插入,在线性表中第i个位置插入值为x的元素
DataType Delete(int i); //删除,删除线性表中第i个元素
void PrintList(); //遍历
};
//有参构造函数
template <class DataType>
SeqList<DataType>::SeqList(DataType a[],int n)
{
if(n>MaxSize) throw "参数非法";
for(int i=0;i<n;i++){
data[i]=a[i];
}
length=n;
}
//按位查找
template <class DataType>
DataType SeqList<DataType>::Get(int i)
{
if(i<1||i>length) throw "查找位置非法";
return data[i-1];
}
//按值查找
template <class DataType>
int SeqList<DataType>::Locate(DataType x)
{
for(int i=0;i<length;i++){
if(x==data[i])
return i+1;
}
return 0;
}
//插入操作
template <class DataType>
void SeqList<DataType>::Insert(int i,DataType x)
{
if(length>=MaxSize) throw "上溢";
if(i<1||i>length+1) throw "位置";
for(int k=length;k>i-1;k--){
data[k]=data[k-1];
}
data[i-1]=x;
length++;
}
//删除操作
template <class DataType>
DataType SeqList<DataType>::Delete(int i)
{
if(length==0) throw "下溢";
if(i<1||i>length) throw "位置";
DataType x=data[i-1];
for(int k=i-1;k<length-1;k++){
data[k]=data[k+1];
}
length--;
return x;
}
//遍历
template <class DataType>
void SeqList<DataType>::PrintList()
{
for(int i=0;i<length;i++)
cout<<data[i]<<" ";
}
int main()
{
SeqList<int> p;
p.Insert(1,1);
p.Insert(2,2);
p.PrintList();
p.Insert(2,3);
cout<<p.Length()<<endl;
p.PrintList();
cout<<p.Get(3)<<endl;
p.Insert(4,4);
p.PrintList();
p.Delete(1);
p.PrintList();
cout<<p.Locate(4)<<endl;
p.Delete(2);
p.PrintList();
return 0;
}
- 【数据结构之线性表顺序存储】简单的数组的方式实现
- 数据结构与算 5:C++ 顺序/链式存储,栈 模板类实现,编译模板类问题解决
- 数据结构之线性表代码实现顺序存储,链式存储,静态链表(选自大话数据结构)
- 数据结构之线性表的顺序存储实现(1)
- c/c++常用算法(1) -- 数据结构(线性表的顺序存储)
- 数据结构复习——线性表的顺序存储实现
- 数据结构之循环队列(顺序表存储)——C++模板类实现
- 数据结构(严蔚敏)C语言实现---线性表的顺序存储
- 【数据结构作业一】写出顺序表的结构体类型定义及查找、插入、删除算法,并以顺序表作存储结构,实现线性表的插入、删除
- 数据结构(3)线性表之顺序表C++实现
- 已知线性表中的元素以值递增顺序排列,并以双向链表为存储结构。试实现以下功能:删除表中所有[MinNum, MaxNum]范围内的数据。
- 数据结构2----线性表顺序存储和链式存储的实现(霜之小刀)
- c++实现线性表的顺序结构
- 数据结构之顺序存储的栈的实现
- 数据结构(一):线性表的顺序存储结构-顺序表的实现
- 数据结构之线性表的顺序表示和实现
- 数据结构(13)线性表之C++实现一元多项式相减
- 线性表的顺序存储实现c++
- c数据结构的顺序存储的实现
- 线性结构--->栈的顺序存储实现