摘要:(1)鍊錶基本上市最基本也最重要的資料結構之一了,下面簡單分析一下基本結構與操作
(2)單鏈表(還有其它類項後面分析)有乙個元素(任意型別)和乙個指標組成。(可以視情況加一些附加結構)
(3)查插入操作:(1)插入操作,非常簡單,找到要插入位置的前乙個元素,然後斷開它與後乙個元素的指標,連線到新元素上。然後將新元素指標指向後乙個元素(所以這裡需要保留原來的節點).
(2)建立並初始化,利用malloc函式分配記憶體,注意編譯器的原因,可能要加強制轉換型別。
(3)刪除操作:找到要刪除元素的前乙個,將其指標直接指向要刪除節點的後乙個節點(相當於繞過要刪除節點),然後用free函式將要刪除節點釋放(所以也需要一開始儲存該節點,否則會丟掉該節點的位址導致無法釋放相應記憶體)
(5)找到前乙個元素的操作:findprevious函式,如果找不到就返回最後乙個。
(4)細節問題:注意處理節點為空的特殊情況,一定小心,因為引用乙個位址為null的節點中的元素為出錯(該節點並沒有分配記憶體)。
#include
"stdafx.h"
#include
"stdlib.h"
#include
"malloc.h"
#include
"time.h"
typedef struct node *ptrtonode;
struct node
;typedef ptrtonode list;
list create(int n)//用來建立乙個單向鍊錶
p->next =
null;
return l;
}list findprevious(list l,list x)//找到x的前乙個元素,也可能返回最後乙個
list delete(list l,list p)//刪除迴圈無表頭鍊錶,返回刪除節點的後乙個;有可能返回隨機位址
資料結構 單鏈表基本操作
實現單鏈表的初始化,頭插法建表,尾插法建表,查詢元素,插入元素,刪除元素等功能 include using namespace std define elemtype char typedef struct node node,linklist 初始化單鏈表 void initlist linkli...
單鏈表基本操作
include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...
單鏈表基本操作
單鏈表的初始化,建立,插入,查詢,刪除。author wang yong date 2010.8.19 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist...