用C++实现的一个线性表,功能比较全,附源代码
用C++实现了一个线性表,长度能够动态变化,基本能满足所有需要了,在具体编写过程中,有一点要提醒大家注意,就是当我们自己编写类的时候,对类的=操作最好进行重载。特别是当类立面有指针的时候,否则很多时候你会发现莫名其妙的错误。具体功能如下:
_QUEUE_NODE();//默认构造函数
_QUEUE_NODE(unsigned size);//初始化线性表的大小
~_QUEUE_NODE();//析构函数
unsigned GetLength();//获取线性表的长度
unsigned GetCount();//获取线性表中元素数量
int GetHead();//获取头部元素
int GetTail();//获取尾部元素
bool Push(int val);//在尾部添加一个元素
int GetAt(unsigned pos);//获取某个位置的元素
bool SetAt(unsigned pos,int val);//修改某个位置的元素
bool SmartAdd();//动态增加空间
bool SmartAdd(unsigned size);//增加指定大小内存
void DestoryList();//销毁线性表
bool ClearList();//清空线性表
bool IsEmpty();//判断是否为空线性表
int Pop();//将第一个值弹出
bool ListInsert(unsigned pos,int val);//在指定位置插入元素
bool ListDelete(unsigned pos);//删除某个位置的元素
int FindPos(int val);//查询某个元素第一次出现的位置
int FindPos(unsigned startPos,int val);//从某个位置开始查询
bool ListSort();//排序(递增)
bool ListReserve();//反转元素
bool IsFull();//线性表有没有满
bool ListSplit(unsigned pos,_QUEUE_NODE *q1,_QUEUE_NODE *q2);//将一个线性表从指定位置拆分为两个,结果存放在q1,q2中
unsigned GetCount(int val);//判断某个元素出现的次数
unsigned ReplaceElement(int oldVal,int newVal);//替换所有oldVal元素为newVal
unsigned ReplaceElement(int oldVal,int newVal,unsigned num);//替换,最后一个参数表示替换的次数
unsigned ReplaceElement(int oldVal,int newVal,int iStart,int iEnd);//在一个区间内替换
static _QUEUE_NODE* GetIntersection(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//取两个线性表的交集
static _QUEUE_NODE* GetAdd(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//去两个线性表的并集
static bool IsSon(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//求q2是否是q1的子集
static _QUEUE_NODE* GetComplement(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//求q2在q1中的补集
int operator=(_QUEUE_NODE &q);//对=操作符进行重载
进来下载楼主的东西,谢谢分享,学习 看帖,必须回帖 看看,留个脚印 看帖,支持下
页:
[1]