日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python鏈表是什么?

數(shù)據(jù)結構是計算機科學必須掌握的一門學問,很多的教材都是用C語言實現(xiàn)鏈表,因為C有指針,可以很方便的控制內存,很方便就實現(xiàn)鏈表,其他的語言,則沒那么方便,有很多都是用模擬鏈表,因為python是動態(tài)語言,可以直接把對象賦值給新的變量。在C/C++中,通常采用“指針+結構體”來實現(xiàn)鏈表;而在Python中,則可以采用“引用+類”來實現(xiàn)鏈表。

鏈表的定義:是一組數(shù)據(jù)項的集合,其中每個數(shù)據(jù)項都是一個節(jié)點的一部分,每個節(jié)點還包含指向下一個節(jié)點的鏈接

鏈表的結構:data為自定義的數(shù)據(jù),next為下一個節(jié)點的地址。

基本元素:

節(jié)點:每個節(jié)點有兩個部分,左邊部分稱為值域,用來存放用戶數(shù)據(jù);右邊部分稱為指針域,用來存放指向下一個元素的指針。

head:head節(jié)點永遠指向第一個節(jié)點;

tail:tail永遠指向最后一個節(jié)點;

None:鏈表中最后一個節(jié)點的指針域為None值;

鏈表種類:單向鏈表、單向循環(huán)鏈表、雙向鏈表、雙向循環(huán)鏈表。

在C語言中,我們定義插入、刪除靠得是指針來實現(xiàn)。

//c語言的代碼 關于鏈表排序的代碼
//解釋下我的思路,鏈表排序,理論上是數(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 ; ipNext)///初始的指針p是在第一個元素上
{
for(j=i+1,q=p->pNext ; jpNext)
{
//數(shù)字交換
if(p->data > q->data)
{
temp = p->data;
p->data = q->data;
q->data = temp;
}
}
}
}

但是python中沒有指針,實現(xiàn)插入、刪除、替換要怎么去做??

python代碼的實現(xiàn),我們用引用+類來實現(xià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向后移。重復幾次,就可以反轉我們的鏈表了。

代碼的順序要考慮,我們是先要保存pHead.next,然后在把數(shù)字1裂開,在把pHead移向數(shù)字2。

附上4張圖:

python學習網(wǎng),大量的免費python視頻教程,歡迎在線學習!


分享文章:創(chuàng)新互聯(lián)Python教程:python鏈表是什么?
URL標題:http://www.5511xx.com/article/dhidcpo.html