這篇文章主要介紹了python中鏈表指的是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為連云港企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站設(shè)計,連云港網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
數(shù)據(jù)結(jié)構(gòu)是計算機科學(xué)必須掌握的一門學(xué)問,很多的教材都是用C語言實現(xiàn)鏈表,因為C有指針,可以很方便的控制內(nèi)存,很方便就實現(xiàn)鏈表,其他的語言,則沒那么方便,有很多都是用模擬鏈表,因為python是動態(tài)語言,可以直接把對象賦值給新的變量。在C/C++中,通常采用“指針+結(jié)構(gòu)體”來實現(xiàn)鏈表;而在Python中,則可以采用“引用+類”來實現(xiàn)鏈表。
鏈表的定義:是一組數(shù)據(jù)項的集合,其中每個數(shù)據(jù)項都是一個節(jié)點的一部分,每個節(jié)點還包含指向下一個節(jié)點的鏈接
鏈表的結(jié)構(gòu):data為自定義的數(shù)據(jù),next為下一個節(jié)點的地址。
基本元素:
節(jié)點:每個節(jié)點有兩個部分,左邊部分稱為值域,用來存放用戶數(shù)據(jù);右邊部分稱為指針域,用來存放指向下一個元素的指針。
head:head節(jié)點永遠(yuǎn)指向第一個節(jié)點;
tail:tail永遠(yuǎn)指向最后一個節(jié)點;
None:鏈表中最后一個節(jié)點的指針域為None值;
鏈表種類:單向鏈表、單向循環(huán)鏈表、雙向鏈表、雙向循環(huán)鏈表。
在C語言中,我們定義插入、刪除靠得是指針來實現(xiàn)。
//c語言的代碼 關(guān)于鏈表排序的代碼 //解釋下我的思路,鏈表排序,理論上是數(shù)字在變換,但是我們要用鏈表來控制數(shù)字變化比較 //用的算法依然是,冒泡法,和正常排序沒什么區(qū)別。 //等效與數(shù)組,這兒只不過是用指針來確定data位置 viod sort() { int i,j; int temp; int len=length_list(pHead);// PNODE p,q;//定義指針 ////利用冒泡排序,指針在移動,數(shù)字在交換, for (i=0,p=pHead->pNext ; i<len-1 ; i++,p=p->pNext)///初始的指針p是在第一個元素上 { for(j=i+1,q=p->pNext ; j<len ; j++,q=q->pNext) { //數(shù)字交換 if(p->data > q->data) { temp = p->data; p->data = q->data; q->data = temp; } } } }
但是python中沒有指針,實現(xiàn)插入、刪除、替換要怎么去做??
python代碼的實現(xiàn),我們用引用+類來實現(xiàn)。
反轉(zhuǎn)鏈表
怎么來好理解呢?看圖也是花了半個小時才理解透徹。
具體翻轉(zhuǎn)思路是,定義一個空的頭指針 pre,然后把head往后移,使鏈表裂開重組。
tmp = pHead.next
pHead = tmp %%%這兩行代碼的意思是,把頭指針往后移一個,移到下一個數(shù)上。
pHead.next = pre
pre = pHead %%%這倆句的意思,我的pre開始指向none ,現(xiàn)在none給了pHead.next,所以數(shù)據(jù)1就裂開了,然后再把數(shù)字1頭指針值賦值給pre,這樣就得到單獨數(shù)字1的值。然后把原pHead向后移。重復(fù)幾次,就可以反轉(zhuǎn)我們的鏈表了。
代碼的順序要考慮,我們是先要保存pHead.next,然后在把數(shù)字1裂開,在把pHead移向數(shù)字2。
附上4張圖:
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中鏈表指的是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
分享文章:python中鏈表指的是什么
文章位置:http://chinadenli.net/article4/gieoie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、做網(wǎng)站、網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)