涅槃的龙 发表于 2012-11-27 16:46:59

用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);//对=操作符进行重载

WindAngel 发表于 2012-12-12 21:43:05

进来下载楼主的东西,谢谢分享,学习

coko 发表于 2013-7-2 18:02:45

看帖,必须回帖

fishmo 发表于 2013-7-3 16:31:30

看看,留个脚印

我挖 发表于 2013-7-3 17:45:04

看帖,支持下
页: [1]
查看完整版本: 用C++实现的一个线性表,功能比较全,附源代码