3 17嵌入式設計(拓展)

2021-10-04 08:15:27 字數 984 閱讀 9379

1. 單鏈表

鍊錶是一種常用的組織有序資料的資料結構,它通過指標將一系列資料節點連線成一條資料鏈,是線性表的一種重要實現方式。相對於陣列,鍊錶具有更好的動態性,建立鍊錶時無需預先知道資料總量,可以隨機分配空間,可以高效地在鍊錶中的任意位置實時插入或刪除資料。鍊錶的開銷主要是訪問的順序性和組織鏈的空間損失。

通常鍊錶資料結構至少應包含兩個域:資料域和指標域,資料域用於儲存資料,指標域用於建立與下乙個節點的聯絡。按照指標域的組織以及各個節點之間的聯絡形式,鍊錶又可以分為單鏈表、雙鏈表、迴圈鍊錶等多種型別,下面分別給出這幾類常見鍊錶型別的示意圖:

單鏈表是最簡單的一類鍊錶,它的特點是僅有乙個指標域指向後繼節點(next),因此,對單鏈表的遍歷只能從頭至尾(通常是null空指標)順序進行。

2. 雙鏈表

通過設計前驅和後繼兩個指標域,雙鏈表可以從兩個方向遍歷,這是它區別於單鏈表的地方。如果打亂前驅、後繼的依賴關係,就可以構成"二叉樹";如果再讓首節點的前驅指向鍊錶尾節點、尾節點的後繼指向首節點(如圖2中虛線部分),就構成了迴圈鍊錶;如果設計更多的指標域,就可以構成各種複雜的樹狀資料結構。

3. 迴圈鍊錶

迴圈鍊錶的特點是尾節點的後繼指向首節點。前面已經給出了雙迴圈鍊錶的示意圖,它的特點是從任意乙個節點出發,沿兩個方向的任何乙個,都能找到鍊錶中的任意乙個資料。如果去掉前驅指標,就是單迴圈鍊錶。

在linux核心中使用了大量的鍊錶結構來組織資料,包括裝置列表以及各種功能模組中的資料組織。這些鍊錶大多採用在[include/linux/list.h]實現的乙個相當精彩的鍊錶資料結構。本文的後繼部分就將通過示例詳細介紹這一資料結構的組織和使用。

3 31嵌入式設計(拓展)

基本介紹 程式是由指令構成的序列,執行程式就是按指令序列逐條執行指令。一旦把程式裝入主儲存器中 簡稱主存 就可以由cpu自動地完成從主訪問指令和執行指令的任務。主要功能 順序控制 這是指控制程式中指令的執行順序。程式中的各指令之間是有嚴格順序的,必須嚴格按程式規定的順序執行,才能保證計算機工作的正確...

3 17嵌入式課程總結

1.gnu計畫的工具 核心除錯kgdb 2.程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體錯誤,邏輯錯誤 3.gdb的功能 執行程式,設定斷點,檢視變數值 4.hello.c操作 gcc g hello.c o hello gdb hello 5.使用 1 tui 影象介面 layout ...

嵌入式課程拓展(三)

靜態鏈結庫檔案 static表示的是編譯的時候禁止呼叫動態庫,此時就是說完全編譯出的東西是比較大的 gdb的功能 l 設定斷點 l 監視程式變數的值 l 程式的單步執行 l 顯示 修改變數的值 l 顯示 修改暫存器 l 檢視程式的堆疊情況 l 遠端除錯 gdb除錯過程 1 程式經過預處理後,即進入編...