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

在這里插入圖片描述
在這里插入圖片描述
單鏈表的特點:每次結點的分配都是動態進行分配的,melloc函數實現的功能是開辟一塊新的內存空間,但是返回的是一個地址,只能是地址,沒有別名的事情,那就有點難辦了,這是一種間接的尋址,不像數組那樣,可以通過名字進行直接尋址,間接尋址就是必須找到第一個元素的位置,通過第一個元素的位置,依次尋找其余元素的位置,很是不方便的,用一個指針變量來記錄開辟的那一塊地址空間,沒有辦法,說是把他賦予一個新的別名,也就是說節點沒有別名,
位序:位序在單鏈表當中是比較模糊的概念,位序不像是角標一樣,有單獨的存儲空間,很方便,這個位序會根據插入元素的位置來進行變化,變化了。我們進行使用的時候就要進行遍歷操作,很麻煩

為什么會提到逆序?

我們插入的時候為什么采用逆序插入的方法?
如果我們按照正常的插入,那么每一次插入都要從第1個元素開始去尋找,后面所插入的位置,也就相當于是每插入一個元素,就要對鏈進行一次遍歷,這樣增加了時間復雜度,使得效率大大降低,當我們采用逆襲插入的方法,每一次插入都可以在第1個位置插入,改變的只是頭節點的指針和第1個元素的指針,前面插入的元素都依次向后移動,但是位序對于鏈表來說是非常模糊的概念,這里就不進行討論

單鏈表的正向創建
在這里插入圖片描述

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

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

相關文章

(圖文詳細)如何使用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;就是將某一件事…

C++繼承詳解

廢話不多說直接上代碼 class 派生類名:&#xff3b;繼承方式&#xff3d; 基類名{ 派生類新增加的成員 }; 繼承方式限定了基類成員在派生類中的訪問權限&#xff0c;包括 public&#xff08;公有的&#xff09;、private&#xff08;私有的&#xff09;和 protected&…

串【數據結構F】

先來講解一下串結構的概念性質的東西&#xff0c;以及我們需要注意的一些問題 串結構簡單的ADT以及一些基本的操作 最小操作函數&#xff1a;就是功能已經達到了最小的功能實現了&#xff0c;不能繼續執行更大的功能&#xff0c;類似于我們在家蓋房子一樣&#xff0c;水泥的…