顺序表--数组
来源:互联网 发布:数据库 索引 编辑:程序博客网 时间:2024/06/09 19:55
template <class T>
class SqList
{
public:
SqList(int Max);
~SqList()
{
delete[] Data;
}
int Locate(const T&x) const; //返回数组中元素x的位置
int Insert(int k,const T&x);//在数组中k处插入元素x
int Delete(int k,T&x);//从数组中删除k处的元素x
private:
int n; //数组当前现存元素个数
int MaxSize; //数组最大元素个数
int last;//数组最后一个元素的下标
T *Data;
};
#include "SqList.h"
template <class T>
SqList<T>::SqList(int Max)
{
MaxSize=Max;
T Data=new T[MaxSize];//数组的类型为T
last=-1; //last用于指向数组的最后一个元素,初始化为-1
}
//寻找元素x的位置
template<class T>
int SqList<T>::Locate(const T&x) const //T 代表数组中元素的类型
{
//返回表中元素x的位置
int i=0;
while (i<=last&&x!=Data[i])
{
i++;
}
if (i>last)
{
return -1;
}
else
{
return i;
}
}
//插入元素
template<class T>
int SqList<T>::Insert(int k,const T&x)
{
//在表的位置k处插入元素x
if ((k<0||k>last+1)||last==MaxSize-1) //last==MaxSize-1 判断最后一个元素的下标是否有超过最大元素,MaxSize-1因为下标是从0开始的 (在顺序插入之前必须判断表有没有满)
{
return 0;
}
else
{
last++;
for(int i=last;i>k;i--)
{
Data[i]=Data[i-1];
}
Data[k]=x;
return 1;
}
}
template<class T>
int SqList<T>::Delete(int k,T&x)
{
if (k<0||k>last)
{
return 0;
}
else
{
last--;
for (int i=k;i>last;i++)
{
Data[i]=Data[i+1];
}
return 1;
{
}
}
}
int main()
{
}
- 顺序表--数组
- 顺序表-数组实现
- 静态数组顺序表
- 数组的顺序表实现
- 顺序表----数组结构c++
- 【C语言】顺序表,数组
- 顺序表实验--数组法
- 静态数组的顺序表
- 静态数组的顺序表
- 线性表01:顺序表 利用数组实现顺序表
- 顺序表 线性表 数组的区别
- 顺序表 线性表 数组的区别
- 数据结构(严蔚敏)数组顺序表
- 数组与链表等顺序表逆置
- 顺序链表,动态数组实现
- C学习之顺序表(数组篇)
- 线性顺序表(动态数组实现)
- 数组实现线性表的顺序存储
- JSP学习笔记
- jdbc 连接 Access 乱码解决
- DWR调用Java中的方法
- (void) (&_x == &_y)
- Android开发技巧:永不关闭的Toast信息框
- 顺序表--数组
- lcd flash sdram
- java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
- 学习c++该读的书籍
- 消息模式Toast.makeText用法
- web.xml 文件 配置加载顺序
- Loading persisted sessions :java.io.EOFException
- 图说TCL/Expect历史
- 虚拟机下 RET HAT ENTERPRISE LINUX 5 文件共享 (与WINDOWS)