單鏈表的實現【數據結構】

在這里插入圖片描述
思考:
1.是否能夠將原來指針的方向改為向前指向呢?
2.是否能夠有兩個指針域的操作呢?
了解:
單鏈表是應用最廣泛的一種形式,還有雙向鏈表以及循環鏈表,這些都是要進行討論的
結構體定義的是什么?
結構體定義的是單鏈表的結點所包含的內容,包括數據域以及指針域,結構一旦發生了變化,那么單鏈表的討論就要發生變化
管理單鏈表的兩種思考角度是什么?
第一種就是將單鏈表看作是一個整體,第二種就是將單鏈表看作是一個結點一個結點的串聯形式
單鏈表的頭指針一般不能進行修改:在進行重定義的時候,通常你會發現帶有LIST的名字,這種就是代表了單鏈表的頭,就是頭指針盡量不要進行對他修改,他記錄的是一個鏈表的首地址,不能將第一個地址弄丟,因為后面的地址是一個挨著一個進行連接在一起的,丟了一個就都丟了,就像是一條線穿著10條魚,距離第1條魚的線斷了,那么后面的10條魚就都要被丟棄了
小提示:
1.鏈式結構當中是不存在存儲空間的浪費的,因為我們是動態進行內存空間的分配的,有數據就開辟空間,沒有就不分配空間
尋找空間的兩種方式:在定義的時候我們起一個別名,利用別名的方式進行訪問,我們稱作是間接尋址,另外的一種是直接通過地址來進行詢問,叫做間接尋址,動態內存分配就只返回一個地址,單鏈表當中的指針用法是很常見的
2.在數組當中訪問元素的方式是利用指針加加的方式,但是對于動態分配的線性表來說,是不能使用指針加加的方式來進行選址,
以結點的角度進行定義
在這里插入圖片描述
單鏈表功能實現函數
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述
指針指向的是起始地址,既不指向數據區也不指向指針區域,指向的是一個整體
在這里插入圖片描述在這里插入圖片描述
delete函數的基本操作以及注意事項
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(詳細圖解)VS2017安裝教程

VS 2017 版本同 15 版一樣,細分為三個版本,分別是: 社區版(Community):免費提供給單個開發人員,給予初學者及大部分程序員支持,可以無任何經濟負擔、合法地使用。企業版&#xff1a…

鏈表的代碼實現【數據結構F】

單鏈表的特點:每次結點的分配都是動態進行分配的,melloc函數實現的功能是開辟一塊新的內存空間,但是返回的是一個地址,只能是地址,沒有別名的事情,那就有點難辦了,這是一種間接的尋址&#xff0…

(圖文詳細)如何使用Code::Blocks運行c/cpp文件?

1) 新建源文件 打開 CodeBlocks ,在上方菜單欄中選擇 “文件 --> 新建 --> 空白文件”,如下圖所示: 或者直接按下 Ctrl Shift N 組合鍵,都會新建一個空白的源文件,如下圖所示: 在空白源文件中輸入…

數據結構【插入操作具體代碼的實現】

插入操作具體代碼的實現 單鏈表delete的操作:

Linux GCC簡明教程(編寫c語言程序)

市面上常見的 Linux 都是發行版本,典型的 Linux 發行版包含了 Linux 內核、桌面環境(例如 GNOME、KDE、Unity 等)和各種常用的必備工具(例如 Shell、gcc、VIM、Firefox 等),國內使用較多的是 CentOS、Ubunt…

Oracle中如何獲取當天時間的最開始的時間和最結尾的時間:

如下: 1.獲取當前時間的最開始的時間: select to_char(TRUNC(SYSDATE),yyyy-mm-dd hh24:mi:ss) from dual; 結果:2013-08-26 00:00:00 2.獲取當前時間的最結尾的時間: selectTRUNC(SYSDATE)1-1/86400 FROM dual; 結果&#x…

解決VS'scanf':this function or variable may be unsafe.`(VS安全函數問題)

在 VS(Visual Studio)下編譯C語言程序,如果使用了 scanf()、gets()、strcpy()、strcat() 等與字符串讀取或操作有關的函數,有時候VS會報錯,提示該函數可能不安全,并且建議替換為帶有_s后綴的安全函數&#…

雙向循環鏈表【數據結構】

單鏈表的缺點以及對單鏈表缺點的改進和雙向鏈表的理解操作 雙向循環列表的插入操作 線性結構是一種邏輯結構,順序存儲結構,鏈式存儲結構

什么是編譯器?(程序是怎么跑起來的)

我們平時所說的程序,是指雙擊后就可以直接運行的程序,這樣的程序被稱為可執行程序(Executable Program)。在 Windows 下,可執行程序的后綴有 .exe 和 .com(其中 .exe 比較常見);在類…

C++std命名空間和頭文件詳解

一個中大型軟件往往由多名程序員共同開發,會使用大量的變量和函數,不可避免地會出現變量或函數的命名沖突。當所有人的代碼都測試通過,沒有問題時,將它們結合到一起就有可能會出現命名沖突。 例如小李和小韓都參與了一個文件管理系…

C++ new和delete

在C語言中,動態分配內存用 malloc() 函數,釋放內存用 free() 函數。如下所示: int *p (int*) malloc( sizeof(int) * 10 ); //分配10個int型的內存空間free(p); //釋放內存 在cpp中,這兩個函數仍然可以使用,但是C又…

Java 的內存管理機制是怎樣的?

Java 的內存管理機制是怎樣的?

leetcode1103. 分糖果 II 該模擬就模擬,別老想著優化

排排坐,分糖果。 我們買了一些糖果 candies,打算把它們分給排好隊的 n num_people 個小朋友。 給第一個小朋友 1 顆糖果,第二個小朋友 2 顆,依此類推,直到給最后一個小朋友 n 顆糖果。 然后,我們再回到…

leetcode912. 排序數組 有范圍的排序統統用桶排序

給你一個整數數組 nums&#xff0c;請你將該數組升序排列。 示例 1&#xff1a; 輸入&#xff1a;nums [5,2,3,1] 輸出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 輸入&#xff1a;nums [5,1,1,2,0,0] 輸出&#xff1a;[0,0,1,1,2,5] 提示&#xff1a; 1 < nums.len…

隊列【數據結構】

注意 我們的銷毀隊列是否能夠成功取決申請空間的方式&#xff0c;動態申請出來的空間都是可以進行銷毀的&#xff0c;對于靜態的話是不能直接進行銷毀的 ADT 相當于是c當中的類結構&#xff0c;是處理數據時&#xff0c;提前對數據進行一定的管理操作&#xff0c;就是將某一件事…