C++数据结构之线性表操作
来源:互联网 发布:淘宝怎么设置价格区间 编辑:程序博客网 时间:2024/05/08 21:57
#include <iostream>
using namespace std;
const int MaxSize = 100;//定义线性表的最大长度
template <typename T> //定义模板类SeqList
class SeqList
{
private:
int data[MaxSize]; //存放数据元素的数组
int length; //线性表的长度typename
public:
SeqList(){ length = 0;} //无参构造函数
SeqList(int a[], int n); //有参构造函数
~SeqList(){} //析构函数为空
int Length() { return length;} //求线性表的长度
int Get(int i); //按位查找,取线性表的第i个元素
int Locate(int x); //按值查找,取线性表中值为x的元素序号
void Insert(int i, int x); //在线性表中第i个位置插入值为x元素
int Delete(int i); //删除线性表的第i个元素
void PrintList(); //遍历线性表,按序号依次输出个元素
};
template <typename T>
SeqList<T>::SeqList(int a[], int n)
{
if(n > MaxSize)
throw "参数非法";
for(int i = 0;i < n; i++)
{
data[i] = a[i];
}
length = n;
}
template <typename T>
int SeqList<T>::Get(int i)
{
if(i < 1 || i > length)
throw "查找位置非法";
else
return data[i-1];
}
template <typename T>
int SeqList<T>::Locate(int x)
{
for(int i = 0; i < length ; i++)
{
if(data[i] == x)
return i+1;
return 0;
}
}
template <typename T>
void SeqList<T>::Insert(int i, int x)
{
if(i > MaxSize)
throw "上溢";
if(i < 1 || i > length + 1)
throw "位置异常";
for(int j = length ; j >= i; j--)
{
data[j] = data[j-1];
}
data[i-1] = x;
length++;
}
template <typename T>
int SeqList<T>::Delete(int i)
{
if(length == 0)
throw "下溢";
if(i < 1 || i > length)
throw "位置异常";
int x =data[i-1];
for(int j = i; j < length; j++)
{
data[j-1] = data[j];
}
length--;
return x;
}
template <typename T>
void SeqList<T>::PrintList()
{
for(int i = 0; i < length; i++)
{
cout<<data[i]<<" ";
}
}
int main()
{
int L[]={21,23,16,46,65,17,31,9};
SeqList<int> SeqL(L,8);
cout<<"初始线性表的内容:"<<endl;
SeqL.PrintList();
cout<<endl;
SeqL.Insert(4,68);
cout<<"进行插入(4,68)后的线性表:"<<endl;
SeqL.PrintList();
cout<<endl;
SeqL.Delete(7);
cout<<"进行删除位置(7)后的线性表:"<<endl;
SeqL.PrintList();
return 0;
}
- C语言数据结构之线性表的基本操作
- 数据结构之对线性表的操作(C语言版)
- 数据结构之线性表(C#)
- 数据结构---线性顺序表操作(c++)
- 【数据结构】C语言线性表操作
- 数据结构之线性表的操作
- C++数据结构之线性表操作
- 数据结构之线性表的操作
- 《数据结构之线性表合并操作》
- C数据结构-线性表之顺序表
- C语言数据结构之线性表
- C语言数据结构之线性表
- C语言数据结构之线性表(续)
- 数据结构C语言版之线性表
- 数据结构之线性表(C++)---数组描述
- 数据结构之线性表(C语言版)
- C数据结构-线性表之单链表
- 数据结构--线性表操作
- test
- ubuntu环境搭建得错误处理
- Xmemcached用户指南
- Ubuntu中完全删除Apache2的办法
- t3双向多对多分解成一对一对多
- C++数据结构之线性表操作
- 经典的sql语句
- Linux驱动学习--时间、延迟及延缓操作2
- 简单工厂模式又叫静态工厂模式
- t3用户-角色-权限hibernate经典配置
- 简述Xml.Serialization如何序列化对象到XML文件
- hibernate中criteria查询
- 菜鸟分析php源码 第二章
- 往事