生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法(基于C++语法实现)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
順序列表
Hello,各位小伙伴,大家好!這是發(fā)布星空以后的第二次寫(xiě)博客。本次我將跟大家分享關(guān)于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的一些知識(shí),數(shù)據(jù)結(jié)構(gòu)與算法的后續(xù),也會(huì)陸陸續(xù)續(xù)的更新,幫助大家更好的理解。
好了,今天我將要跟大家分享順序列表的知識(shí)。
順序列表的定義:n個(gè)數(shù)據(jù)元素的有限序列,其中n(n>=0)表示線性表的長(zhǎng)度。實(shí)現(xiàn)的操作增、刪、改、查。(以后的數(shù)據(jù)結(jié)構(gòu)基本上都是實(shí)現(xiàn)這幾個(gè)操作)
下面是順序列表的代碼塊,有詳細(xì)的注釋幫助萌新理解哦,支持到vs2013上運(yùn)行代碼,只需做一點(diǎn)小小的修改,這個(gè)問(wèn)題就留給小伙伴你了,一個(gè)簡(jiǎn)單的考驗(yàn)。
#define DataType int
Class SeqList
{public:SeqList(int size =defaultSize){if(size>0)//檢查賦予的順序表的大小,如果合法則分配相應(yīng)大小的內(nèi)存{maxsize=size;Elements =new DataType[maxsize];//分配內(nèi)存大小}length=0;}int getLength(){return this.length;}~SeqList(){delete[] Elements;//回收內(nèi)存}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<<"順序表已空或者位置非法,不得進(jìn)行刪除"<<endl;return false;//判定位置是否合法}else{for(int i=location;i<length;i++){Elements[i]=Elements[i+1];}length--;return true;}
}
DataType Seqlist::getElements(int location)//取出指定位置的數(shù)據(jù)
{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;
}
后續(xù)的相關(guān)的知識(shí)也會(huì)陸陸續(xù)續(xù)的發(fā)布出來(lái),如果小伙伴感覺(jué)有用的話,多多點(diǎn)贊、收藏、轉(zhuǎn)發(fā)(ps:表明轉(zhuǎn)載處哦,),將實(shí)用的知識(shí)讓更多的小伙伴了解。
感謝各位小伙伴的點(diǎn)贊關(guān)注收藏。
總結(jié)
以上是生活随笔為你收集整理的数据结构与算法(基于C++语法实现)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。