頭結點:第乙個有效結點之前的那個結點; 頭結點並不存有效資料;加頭結點的目的主要是為了方便對鍊錶的操作
頭指標:指向頭結點的指標變數
尾指標:指向尾節點的指標變數
如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數:頭指標
首先要定義乙個單鏈表儲存結構
然後建立乙個空表,即初始化,我寫的這個提前設定好了乙個首結點和尾結點
向鍊錶中插入元素,我直接進行了有序的插入,大致的想法就是新插入結點的值和已經插入的進行比較,若新插入結點的值小,則插入其中;若相等,則不插入;若大於,則指標向下一位移動。
搜尋和刪除功能在別的**中測試成功,這**沒有體現出來
#include#includetypedef struct linknodelinknode,*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...
資料結構之鍊錶
鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...
資料結構之鍊錶
表的簡單陣列實現 因為在定義表的時候因為表是動態空間所以會估計的大一點,從而浪費了大量的空間。在表的插入和刪除的時候需要對錶進行大量的遍歷,所以一般不採用。表的鍊錶實現 鍊錶由一系列不必在記憶體中相連的結構組成,每乙個結構均含有表元素和指向包含該元素後繼元的結構的指標。表頭所解決的三個問題 雙鏈表 ...