数据结构之 循环表线性表
来源:互联网 发布:淘宝的二手市场叫什么 编辑:程序博客网 时间:2024/09/21 09:24
头文件CirSeqList.h
//循环表#define _SEQ_MAXLEN 100typedef int DataType;class CirSeqList{public:CirSeqList();CirSeqList(DataType ary[],int n);void Initial(DataType ary[], int n);DataType Next(bool move);DataType Current();DataType Previous(bool move);DataType Get(int index);void Set(int index,DataType data);void SetCurrent(DataType data);void SetCurNum(int n);int GetCurNum();void Move(int shift);bool IsLegal(int index);private:DataType list[_SEQ_MAXLEN];int cur,len;void Shift(int *index,int shift);};CirSeqList::CirSeqList(){len = 0;cur = -1;}CirSeqList::CirSeqList(DataType ary[], int n){Initial(ary, n);}void CirSeqList::Initial(DataType ary[], int n){if (n > _SEQ_MAXLEN){CirSeqList();return;}len = 0;for (int i = 0; i < n; i++){list[len++] = ary[i];}cur = 0;}DataType CirSeqList::Get(int index){if (IsLegal(index)){return list[index];}else{return 0;}}DataType CirSeqList::Next(bool move = true){int tar = cur;Shift(&tar, 1);Move(move);return Get(tar);}DataType CirSeqList::Current(){return Get(cur);}DataType CirSeqList::Previous(bool move = false){int tar = cur;Shift(&tar, -1);Move(-move);return Get(tar);}void CirSeqList::SetCurNum(int n){if (IsLegal(n)){cur = n;}}int CirSeqList::GetCurNum(){return cur;}void CirSeqList::Move(int shift){Shift(&cur, shift);}void CirSeqList::Shift(int *index,int shift){int tar = *index;//周期处理if (shift<=-len){shift = -((-shift) % len);}else if (shift>=len ){shift = shift % len;}//加偏移,这个时候不可能出现周期情况。tar += shift;if (tar < 0){tar+=len;}else if (tar >= len){tar-=len;}//保险判断if (IsLegal(tar)){*index = tar;}}void CirSeqList::SetCurrent(DataType data){Set(cur, data);}void CirSeqList::Set(int index, DataType data){if (IsLegal(index)){list[index] = data;}}bool CirSeqList::IsLegal(int index){if (index >= 0 && index<len){return true;}else{return false;}}
0 0
- 数据结构之 循环表线性表
- 数据结构学习笔记(3.线性表之循环链表)
- 数据结构之线性表6循环链表
- Java数据结构-线性表之循环链表
- 数据结构(9)线性表之循环链表介绍
- 数据结构之线性结构(循环链表)【三】
- 数据结构之线性表——数组循环左移
- 数据结构【线性表(二)链表】项目之循环双链表应用
- 数据结构之线性结构--双向循环链表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- 数据结构之线性表
- JS中判断浏览器类型
- NSDate 当前时间获取和时间比较
- 正则表达式bughive
- Runnbale Jar File
- KeyMob移动广告在移动应用广告上成功的4大优势
- 数据结构之 循环表线性表
- 【剑指offer】之不用加减乘除做加法
- Hibernate 缓存机制
- css3弹性盒子
- Android学习笔记——五大基本布局+AbsoluteLayout
- JavaSE(20)(多线程安全)
- 如何用Xcode进行内存循环引用检测
- 图层权限控制新想法,原来的可能不行
- 从头认识java-11.4 正则表达式(3)-Pattern和Matcher