python鏈表
① python中的鏈表(linked list)
鳳鸞寶帳景非常,盡是泥金巧樣妝。
曲曲遠山飛翠色,翩翩舞袖映霞裳。
梨花帶雨爭嬌艷,芍葯籠煙騁媚妝。
但得妖嬈能舉動,取回長樂侍君王。
// 這題需要使用輾轉相除法,又名歐幾里德演算法(Euclideanalgorithm)
#include <stdio.h>
int main (void)
{
int m, n, p, tmp;
printf ("Please type in two number:\n");
scanf ("%i %i", &m, &n); //輸入兩個數,分別放入m, n
p=m*n; //先把兩數的積算出來,後面m和n的值會有變
while (n!=0){
tmp=m%n;
m=n;
n=tmp; //這段是求最大公約數的演算法
}
printf ("The GCD is %i\n", m); //上面的演算法n=0時m這時的值就是最大公約數
printf ("The LCM is %i\n", p/m);//兩數的積除以最大公約數就是最小公倍數了
return 0;
}
② python鏈表__getitem__()問題
應該是誤將float當作list或者tuple來操作了
對於list或者元組,[]操作是訪問下標所在的元素,也就是__getitem__方法。
由於python定義變數的時候並不說明類型,類型都在運行時確定,因此有出現類型錯誤的可能性。
至於具體怎麼修改,無法從你的問題中得出結論,你可以看出錯的調用堆棧,都有對應的文件和行號的。
③ python的雙向鏈表
這里有一個:
https://github.com/rgsoda/pypy-llist/
④ [zz]為什麼python標准庫沒有實現鏈表
在需要用到linked list特性的地方,比如常常需要從頭部append或者pop
這時候有python的deque. (這里我記錯了,特此更正,deque如果做insert還是會導致內存拷貝/移動,這裡面的關鍵思想就是目前硬體的內存拷貝相當快,不是相當長的東西都可以接受)
deque也不是通常的簡單數據結構,它是經過認真權衡過後得到的一種混合式數據結構。
他是一個鏈式塊結構,每個塊包含62個對象,以此來平衡對locality的優化和對push, pop的優化。有人問為啥是62個而不是其他數:那是因為deque是個雙向鏈表,一個節點64個指針,一個指向前一個指向後,剩下就是62個指針用來指向對象
⑤ python怎麼知道一個量在鏈表中的位置
python中沒有鏈表這個類型。如果是python基礎類,你說的應該是list,你可以用list.index(變數)返回這個變數的序號(位置)。如果是第三方庫,查看他的說明文檔吧。
其實這些小問題,你網路都可以解決的。你現在的問題還是python 的基礎不好,不知道他的基本數據類型是什麼,太急於上手了,導致問什麼都不知道。老老實實從頭學,你不會遇到萬丈深淵的。
⑥ python有鏈表嗎
python中的鏈表(linked list)是一組數據項的集合,其中每個數據項都是一個節點的一部分,每個節點還包含指向下一個節點的鏈接。鏈表有兩種類型:單鏈表和雙鏈表。
鏈表的數據結構
在鏈表中刪除操作可以通過修改指針來實現,
插入則是調整,插入點的前後兩個指針的指向關系,
在python中每個變數都是指針,例如:
用內置數據結構(list,dict,tuple等)的嵌套/組合,它們隱式地包含了指向/嵌套關系,如graph[u][v]={w0,w1..}類的成員變數、嵌套類可能包含了指向/嵌套關系;
引用表示指向關系,只不過引用不能像指針一樣運算,比如p+1指向下一個元素,所以可能限制頗多。因此,要實現鏈表的操作,不能和c一樣直接對指針進行操作。
python學習網,大量的免費python視頻教程,歡迎在線學習!
⑦ python中的鏈表和列表有什麼區別
列表是python的一種數據結構,每個列表可以沒有或者是多個元素,每個元素可以是字元,數據,列表,或者是字典。
python中沒有指針,所以對於C語言來的鏈表,只能是一個模擬鏈表,一般都是通過一個class來定義node,node中的self。value就是對應的數據,self。p指向下一個node。
通過上面的分析我們可以看到他們有相同的地方就是他們都是數據存儲的手段,列表是python的基礎元素,范圍很廣,數據是連續存放,鏈表相對來說應用的范圍比較少,數據是不連續存放,一般都是用於高效合並的數據結構。
⑧ 如何使用python建立鏈表
classListNode:
def__init__(self,x):
self.val=x
self.next=None
l1=newListNode(0)
l1.next=newListNode(1)
⑨ python的list是數組的結構還是鏈表的結構
在高級語言中好像沒有鏈表結構,非要說一個,個人覺得是數組,可以用下標訪問其中的數據,並且自身沒有存儲排在前後位置。在Python定義中list是集合數據類型。
⑩ python 鏈表問題
classUnorderedList:
def__init__(self):
self.head=None
defadd(self,item):
new_node=Node(item)
new_node.set_next(self.head)
self.head=new_node
defsize(self):
current=self.head
count=0
whilecurrent!=None:
count=count+1
current=current.get_next()
returncount
defis_empty(self):
returnself.head==None
defadd_all(self,other_list):
foriteminother_list:
self.add(item)
returnself.head
def__iter__(self):
current=self.head
whilecurrent:
yieldcurrent
current=current.get_next()
defprint_all(self):
foriteminself:
print(item.get_data())
classNode:
def__init__(self,init_data):
self.data=init_data
self.next=None
defget_data(self):
returnself.data
defget_next(self):
returnself.next
defset_data(self,new_data):
self.data=new_data
defset_next(self,new_next):
self.next=new_next
if__name__=="__main__":
s=UnorderedList()
s.add(33)
s.add(44)
s.add_all([1,2,3,4])
s.print_all()