導航:首頁 > 數據處理 > 表的數據結構有哪些

表的數據結構有哪些

發布時間:2024-11-27 17:35:25

『壹』 八種數據結構特點

數據結構:計算機存儲、組織數據的方式。程序員的目標是為當前的問題選擇最優的數據結構。

八種數據結構:數組,棧,鏈表,隊列,堆,圖,樹,散列表,每種數據結構都有其特殊的存儲方式。

概念:

一維數組:數組元素+數組索引

多維數組:數組的元素也是數組

基本操作:insert,get,delete(刪除某個索引處的數組),size(獲取數組長度)

題目:

查找數組第二小的元素

查找第一個沒有重復的數組元素

合並2個排序號的數據

重新排列數組中的正數和負數

特點:棧是一種特殊的線性表,僅能在線性表的一端操作,棧頂允許操作,棧底不允許操作。 棧的特點是:先進後出,或者說是後進先出。棧中的元素採用LIFO (Last In First Out),即後進先出。

基本操作:Push(棧頂插入元素),Pop(返回棧最上方的元素,並刪除),isEmpty(查詢棧是否為空),Top(返回最上方元素,並不刪除)

題目:使用棧計算後綴表達式、使用棧為棧中的元素排序、檢查字元串中的括弧是否匹配正確

使用場景:棧常應用於實現遞歸功能方面的場景,例如斐波那契數列。撤回,即Ctrl+Z,是我們最常見的操作之一,大多數應用都會支持這個功能。你知道它是怎麼實現的嗎?答案是這樣的:把之前的應用狀態(限制個數)保存到內存中,最近的狀態放到第一個。這時,我們需要棧(stack)來實現這個功能。

概念:隊列(Queue)與棧類似,都是採用線性結構存儲數據。它們的區別在於,棧採用LIFO方式,而隊列採用先進先出,即FIFO(First in First Out)。

使用場景:因為隊列先進先出的特點,在多線程阻塞隊列管理中非常適用。

基本操作:Enqueue—在隊列末尾插入元素,Dequeue—將隊列第一個元素刪除i,sEmpty—查詢隊列是否為空,Top—返回隊列的第一個元素

習題:使用隊列實現棧,倒轉隊列的前K個元素,使用隊列將1到n轉換為二進制。

概念「鏈表(Linked List)也是線性結構,它與數組看起來非常像,但是它們的內存分配方式、內部結構和插入刪除操作方式都不一樣。鏈表是一系列節點組成的鏈,每一個節點保存了數據以及指向下一個節點的指針。鏈表頭指針指向第一個節點,如果鏈表為空,則頭指針為空或者為null。鏈表分為:單向鏈表,雙向鏈表。

使用場景:鏈表可以用來實現文件系統、哈希表和鄰接表。

基本操作:InsertAtEnd—在鏈表結尾插入元素,InsertAtHead—在鏈表開頭插入元素,Delete—刪除鏈表的指定元素,DeleteAtHead—刪除鏈表第一個元素,Search—在鏈表中查詢指定元素,isEmpty—查詢鏈表是否為空

題目:倒轉1個鏈表,檢查鏈表中是否存在循環,返回鏈表倒數第N個元素,移除鏈表中的重復元素

概念:圖(graph)由多個節點(vertex)構成,節點之間闊以互相連接組成一個網路。(x, y)表示一條邊(edge),它表示節點x與y相連。邊可能會有權值(weight/cost)。

分類:無向圖,有向圖

表現形式:鄰接矩陣(Adjacency Matrix),鄰接表(Adjacency List)

遍歷圖的兩種演算法:廣度優先搜索(Breadth First Search),深度優先搜索(Depth First Search)

常見題目:

實現廣度優先搜索,實現深度優先搜索,檢查圖是否為樹,統計圖中邊的個數,使用Dijkstra演算法查找兩個節點之間的最短距離。

樹(Tree)是一個分層的數據結構,由節點和連接節點的邊組成。樹是一種特殊的圖,它與圖最大的區別是沒有循環。樹被廣泛應用在人工智慧和一些復雜演算法中,用來提供高效的存儲結構。

常見樹:N叉樹(N-ary Tree),平衡樹(Balanced Tree),二叉樹(Binary Tree),二叉查找樹(Binary Search Tree),平衡二叉樹(AVL Tree),紅黑樹(Red Black Tree),2-3樹(2–3 Tree)

題目:計算樹的高度,查找二叉平衡樹中第K大的元素,查找樹中與根節點距離為k的節點,查找二叉樹中某個節點所有祖先節點。

哈希(Hash)將某個對象變換為唯一標識符,該標識符通常用一個短的隨機字母和數字組成的字元串來代表。哈希可以用來實現各種數據結構,其中最常用的就是哈希表(hash table)。

哈希表通常由數組實現。

哈希表的性能取決於3個指標:

哈希函數哈希表的大小哈希沖突處理方式

題目:查找數組中對稱的組合,確認某個數組的元素是否為另一個數組元素的子集,確認給定的數組是否互斥。

前綴樹(Prefix Trees或者Trie) 與樹類似,用於處理字元串相關的問題時非常高效。它可以實現快速檢索,常用於字典中的單詞查詢,搜索引擎的自動補全甚至IP路由。

參考資料: http://www.cnblogs.com/williamjie/p/9558015.html

閱讀全文

與表的數據結構有哪些相關的資料

熱點內容
法蘭克內部程序怎麼傳到cf卡 瀏覽:819
外科護理有哪些技術 瀏覽:864
微信二手貨物交易平台哪個好 瀏覽:227
知識產權核心技術關鍵詞指什麼 瀏覽:144
信息表資格證書怎麼填 瀏覽:785
實體店怎麼做洗衣液代理 瀏覽:416
2k22怎麼交易球隊 瀏覽:292
普通人做什麼產品最賺錢 瀏覽:660
2010年市場金如意多少一克 瀏覽:89
家庭理財產品如何統計 瀏覽:743
暫停交易和臨時停牌有什麼區別 瀏覽:765
菜市場買的菇叫什麼名字好吃 瀏覽:345
如何惹怒一個女程序員 瀏覽:299
速度時間圖像能提供哪些信息 瀏覽:781
快手小程序里發布了視頻怎麼刪掉 瀏覽:182
委託全程代理起訴書怎麼寫 瀏覽:95
代理一個公司需要哪些條件 瀏覽:297
重慶板材交易市場有哪些 瀏覽:306
表的數據結構有哪些 瀏覽:852
年輕人該學什麼技術好 瀏覽:492