分別用頭插法和尾插法建立有頭結點和無頭結點的單鏈表

2021-08-11 07:59:24 字數 1274 閱讀 6508

1、頭插法建立無頭結點的鍊錶

鍊錶無頭結點,則在建立鍊錶的時候,使頭指標l=null;

用頭插法插入元素的時候,首先要判斷頭指標是否為空;

如果頭指標為空,則將新插入的結點賦值給頭指標,即l=p;然後將新結點的頭指標指向null;

如果頭指標不為空,則將新結點指向首結點,再將首結點指向新結點;即p->next=l; l=p;

int createheadlinklist(linklist &l,int n)

linklist p;

l=malloc(sizeof(linklist));

if(!l)

return 0;

l=null;

for(int i=1;i<=n;i++)

p=malloc(sizeof(linklist));

if(l=null)

l=p;

p->next=null;

else

p->next=l;

l=p;

retrun 1;

2、尾插法建立無頭結點的鍊錶

首先設定乙個尾指標tail指向最後乙個結點,初始化時將tail指向l;即tail=l;

然後判斷鍊錶是否為空,為空的時候直接將新結點賦值給l,即l=p;

如果鍊錶不為空,則將tail->next=p;

最後,將新插入進來的結點的next指向null,並把尾指標指向新結點

p->next=null;tail=p;

int createtaillinklist(linklist &l,int n)

linklist tail,p;

l=malloc(sizeof(linklist));

if(!l)

return 0;

l=null;

tail=l;

if(l=null)

l=p;

} else

tail->next=p;

p=null;

tail=p;

return 1;

3、頭插法建立有頭結點的鍊錶

有頭結點的鍊錶,在建立鍊錶時,初始化鍊錶指標l->next=null;與無頭結點的區別是,無頭結點的判斷鍊錶為空是根據l->next=null;

用頭插法插入元素時,判斷鍊錶是否為空,若為空,則將新結點的next指向空作為表尾;

若不為空,則將新結點的next指向頭結點的next指向;再將頭結點的next指向p;即p->next=l->next;

有頭結點,則在建立鍊錶的時候,使頭指標l->next=null;

頭插法和尾插法

頭插法 初始化頭節點 lk init headnode 資料域可以不用維護 headnode next null return headnode 頭插法 void insert linklist lk headnode,int length int val 0 int index 0 for int...

頭插法和尾插法建立單鏈表

頭插法和尾插法建立單鏈表 include using namespace std typedef int elemtype typedef struct lnode linklist 頭插法建表 從尾部乙個乙個往前插入 void createlisthead linklist l,elemtype ...

頭插法和尾插法建立單鏈表

頭插法建立單鏈表 include include typedef struct lnodenode,linklist linklist headinsert linklist 頭插法建立單鏈表 void output linklist 遍歷輸出 int main void 頭插法建立單鏈表 link...