佇列(queue),先進先出(fifo)queue.push為入隊,pueue.shift為出隊,由這兩項組成佇列
棧(stack),後進先出(lifo)順序儲存資料
鍊錶linked list雙向鍊錶
每個節點有乙個previous指向上乙個節點
迴圈鍊錶
最後乙個節點的next指向頭節點
定義是一種物件的鍵值對的資料結構
實際上是我們把物件(value)的「鍵值(key)」轉換成了「陣列下標」;然後就可以借助這個下標一步到位的找到對應物件(value)了
相對於「以key為下標直接訪問的陣列」,雜湊表是「時間換空間」;相對於二分法查詢,雜湊表又是「以空間換時間」。這種「中庸」的定位使得它在許多場合極為好用。
難點
雜湊表裡,存的越多鍵值對,讀取速度越慢,解決辦法有
不做任何優化,hash[『***』] 遍歷所有key o(n)
對key排序,使用二分法查詢, o(log2 n)
用字串對應的ascii數字做索引, o(1)
對索引做除法取餘數, o(1)
碰撞hash可能會把不同的資料對映到同乙個點上,術語稱其為「碰撞」,由於hash自身的基本原理,碰撞是不可避免的。
解決方法:順延、開煉表法、加另乙個雜湊表
每乙個節點組成了一棵樹
資料結構學習
什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...
資料結構 Merkle tree學習
學習位元幣的資料結構看到的,原來以為是一種剛出來的資料結構,閱讀了一些文件後才發現這個資料結構是蠻經典的。比如在下小電影的時候也會用到這個東西。用到這個首先要先知道hash,關於hash的原理和生成我不清楚,這個太底層了。一般可以理解是某一些特定的演算法可以為某個檔案生成指定長度的唯一字串,而這個字...
資料結構學習
鍊錶 class listnode definit self,x self.val x 節點值 self.next none 後繼節點值 例項化節點 n1 listnode 4 節點head n2 listnode 5 n3 listnode 1 構建引用指向 n1.next n2 n2.next ...