顺序列表
Hello,各位小伙伴,大家好!这是发布星空以后的第二次写博客。本次我将跟大家分享关于学习数据结构与算法的一些知识,数据结构与算法的后续,也会陆陆续续的更新,帮助大家更好的理解。
好了,今天我将要跟大家分享顺序列表的知识。
- 顺序列表的定义:n个数据元素的有限序列,其中n(n>=0)表示线性表的长度。
- 实现的操作增、删、改、查。(以后的数据结构基本上都是实现这几个操作)
下面是顺序列表的代码块,有详细的注释帮助萌新理解哦,支持到vs2013上运行代码,只需做一点小小的修改,这个问题就留给小伙伴你了,一个简单的考验。
#define DataType int
Class SeqList
{public:SeqList(int size =defaultSize){if(size>0)//检查赋予的顺序表的大小,如果合法则分配相应大小的内存{maxsize=size;Elements =new DataType[maxsize];//分配内存大小}length=0;}int getLength(){return this.length;}~SeqList(){delete[] Elements;//回收内存}bool insertElement(DataType data);//向指定位置插入元素bool deletElement(int location );//删除指定位置的元素DataType getElement(int location);//取得指定位置的元素bool cahngeElement(int location,DataType newData);//修改指定位置的元素值private:default const int defaultSize = 10; DataType *Elements;int maxsize;//顺序表的最大大小int length;
}
bool SeqList::insertElements(DataType data)
{if(length >=maxsize)return false;//判定位置是否合法else{Elements[length]=data;length++;return true;}
}bool SeqList::deletElement(int location)
{if(length<0||location >=maxsize||location<0){ cout<<"顺序表已空或者位置非法,不得进行删除"<<endl;return false;//判定位置是否合法}else{for(int i=location;i<length;i++){Elements[i]=Elements[i+1];}length--;return true;}
}
DataType Seqlist::getElements(int location)//取出指定位置的数据
{if(location >maxsize||location<0){cout<<"你取元素的位置非法"<<endl;//判定位置是否合法return false;}else{length--;return Elements[location];}
}
bool SeqList::changeElement(int location ,DataType newData)
{if(location >maxsize||location <0){cout<<"操作位置非法"<<endl;//判定位置是否合法return false;}else{Elements[location]=newData;return true;}
}int main()
{SeqLsit list(10);//建立顺序表for(int i=0;i<10;i++){list.insertElements(i*20);//顺序表的初始化}for(int i=0;i<10;i++){cout<<list.getElements(i)<<" ";}//将顺序表中的元素输出cout<<endl;//删除索引为5的元素list.deletElement(5);//将删除后的表格输出for(int i=0;i<list.getLength();i++){cout<<list.getElement(i)<<" ";}cout<<endl;//将顺序表的索引为3的元素值改为88list.changeElement(3,88);//将更改之后的表格输出for(int i=0;i<list.getLength();i++){cout<<list.getElement(i)<<" ";}cout<<endl;return 0;
}
后续的相关的知识也会陆陆续续的发布出来,如果小伙伴感觉有用的话,多多点赞、收藏、转发(ps:表明转载处哦,),将实用的知识让更多的小伙伴了解。
感谢各位小伙伴的点赞关注收藏。