鱼C论坛

 找回密码
 立即注册
查看: 3266|回复: 4

[技术交流] 用C++实现的一个线性表,功能比较全,附源代码

[复制链接]
发表于 2012-11-27 16:46:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用C++实现了一个线性表,长度能够动态变化,基本能满足所有需要了,在具体编写过程中,有一点要提醒大家注意,就是当我们自己编写类的时候,对类的=操作最好进行重载。特别是当类立面有指针的时候,否则很多时候你会发现莫名其妙的错误。 线性表.zip (3.68 KB, 下载次数: 10)

具体功能如下:
  1. _QUEUE_NODE();//默认构造函数
  2.         _QUEUE_NODE(unsigned size);//初始化线性表的大小
  3.         ~_QUEUE_NODE();//析构函数
  4.        
  5.         unsigned GetLength();//获取线性表的长度
  6.         unsigned GetCount();//获取线性表中元素数量
  7.         int GetHead();//获取头部元素
  8.         int GetTail();//获取尾部元素
  9.         bool Push(int val);//在尾部添加一个元素
  10.         int GetAt(unsigned pos);//获取某个位置的元素
  11.         bool SetAt(unsigned pos,int val);//修改某个位置的元素
  12.         bool SmartAdd();//动态增加空间
  13.         bool SmartAdd(unsigned size);//增加指定大小内存
  14.         void DestoryList();//销毁线性表
  15.         bool ClearList();//清空线性表
  16.         bool IsEmpty();//判断是否为空线性表
  17.         int Pop();//将第一个值弹出
  18.         bool ListInsert(unsigned pos,int val);//在指定位置插入元素
  19.         bool ListDelete(unsigned pos);//删除某个位置的元素
  20.         int FindPos(int val);//查询某个元素第一次出现的位置
  21.         int FindPos(unsigned startPos,int val);//从某个位置开始查询
  22.         bool ListSort();//排序(递增)
  23.         bool ListReserve();//反转元素
  24.         bool IsFull();//线性表有没有满
  25.         bool ListSplit(unsigned pos,_QUEUE_NODE *q1,_QUEUE_NODE *q2);//将一个线性表从指定位置拆分为两个,结果存放在q1,q2中
  26.         unsigned GetCount(int val);//判断某个元素出现的次数
  27.         unsigned ReplaceElement(int oldVal,int newVal);//替换所有oldVal元素为newVal
  28.         unsigned ReplaceElement(int oldVal,int newVal,unsigned num);//替换,最后一个参数表示替换的次数
  29.         unsigned ReplaceElement(int oldVal,int newVal,int iStart,int iEnd);//在一个区间内替换
  30.         static _QUEUE_NODE* GetIntersection(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//取两个线性表的交集
  31.         static _QUEUE_NODE* GetAdd(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//去两个线性表的并集
  32.         static bool IsSon(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//求q2是否是q1的子集
  33.         static _QUEUE_NODE* GetComplement(_QUEUE_NODE &q1,_QUEUE_NODE &q2);//求q2在q1中的补集
  34.         int operator=(_QUEUE_NODE &q);//对=操作符进行重载
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-12 21:43:05 | 显示全部楼层
进来下载楼主的东西,谢谢分享,学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-2 18:02:45 | 显示全部楼层
看帖,必须回帖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 16:31:30 | 显示全部楼层
看看,留个脚印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-3 17:45:04 | 显示全部楼层
看帖,支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 18:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表