資料結構之鍊錶

2021-07-07 09:51:45 字數 1756 閱讀 8296

頭結點:第乙個有效結點之前的那個結點; 頭結點並不存有效資料;加頭結點的目的主要是為了方便對鍊錶的操作

頭指標:指向頭結點的指標變數

尾指標:指向尾節點的指標變數

如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數:頭指標

首先要定義乙個單鏈表儲存結構

然後建立乙個空表,即初始化,我寫的這個提前設定好了乙個首結點和尾結點

向鍊錶中插入元素,我直接進行了有序的插入,大致的想法就是新插入結點的值和已經插入的進行比較,若新插入結點的值小,則插入其中;若相等,則不插入;若大於,則指標向下一位移動。

搜尋和刪除功能在別的**中測試成功,這**沒有體現出來

#include#includetypedef struct linknode

linknode,*linkptr;

linkptr initializelinklist();

linkptr createlinklist(int *paraarray, int arraylength);

void inserttonode(linkptr parahead, int paraelement);

void printlinklist(linkptr parahead);

int deletenode(linkptr parahead, int val);

int searchnode(linkptr parahead, int find);

void testlinklist();

//插入結點

void inserttonode(linkptr parahead, int paraelement)

else if ((q->element) == (r->element))

else

}printf("insert success\n");

printlinklist(parahead);

}//初始化鍊錶

linkptr initializelinklist()

//建立鍊錶

linkptr createlinklist(int *paraarray, int arraylength)

return head;

}//列印鍊錶

void printlinklist(linkptr parahead)

}//刪除結點

int deletenode(linkptr parahead, int val)

if ((p != null)&&(num==val))

else }

//查詢結點

int searchnode(linkptr parahead, int find)

if ((p != null) && (i == find))

return 0;

}void testlinklist()

; linkptr templist = createlinklist(temparray, 5); }

void main()

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...

資料結構之鍊錶

表的簡單陣列實現 因為在定義表的時候因為表是動態空間所以會估計的大一點,從而浪費了大量的空間。在表的插入和刪除的時候需要對錶進行大量的遍歷,所以一般不採用。表的鍊錶實現 鍊錶由一系列不必在記憶體中相連的結構組成,每乙個結構均含有表元素和指向包含該元素後繼元的結構的指標。表頭所解決的三個問題 雙鏈表 ...