資料結構 鍊錶 帶頭結點的單向迴圈鍊錶

2021-10-20 06:26:11 字數 1599 閱讀 2605

帶頭結點的單向迴圈鍊錶

#include

#include

#include

"headlist.h"

/* 功能:建立乙個空鍊錶

引數:無

返回值:

失敗返回null

成功返回頭結點的位址

*/list *

createlklist()

list->first =

null

; list->last =

null

; list->n =0;

//現在還是空鍊錶

return list;}/*

功能:往煉表中插入乙個元素

引數:@list 頭結點的位址

@x 待插入的資料

返回值:無

*/void

insert

(list * list,elemtype x)

else

//首尾相連

list->last->next = list->first;

list->n ++;}

void

printflklist

(list * l)

printf

("\n");

}void

cleanlist

(list *list)

list->first=list->last=

null

; list->n =0;

}void

destroylist

(list * list)

intfind

(list * list,elemtype x)

p = p->next;

}return0;

}//有序

void

insertelem

(list * list,elemtype x)

r = q;

q = q->next;}if

(i == list->n)

//沒找到

else

if(q == list->first)

//第乙個就比我大

else

//中間位置

list->n ++;}

void

delete

(list * list,elemtype x)

r = p;

p = p->next;}if

(in)

//找到了

else

if(p == list->last)

//刪除的是最後乙個

else

//中間

list->n --;}

}//約瑟夫問題

intjoseph

(int n,

int m)

p = q;

}int x = list->first->data;

printflklist

(list)

;destroylist

(list)

;return x;

}

建立鍊錶(帶頭 單向 不迴圈)

第一次嘗試 這是 h 部分的 pragma once 使用這種方式來重新命名資料型別,這樣可以很方便的修改後續資料的資料型別,相當於 define的作用 typedef int listtype 建立資料節點 typedef struct listnode listnode 建立頭結點 typede...

資料結構 電話本 鍊錶 帶頭結點

簿 功能 儲存,插入,刪除,輸出 號碼資訊,include include 宣告函式原型 struct link delnode struct link head,int n 刪除節點 struct link addnode struct link head,int n 插入節點 int displ...

鍊錶 帶頭結點的雙向迴圈鍊錶

還需改進 creat node這個函式應有返回型別,來判斷新建結點是否成功,不然主函式中不管成不成功都會訪問該節點成員。改了這個函式,在主函式中create node後要判斷是否成功,不成功就提示並退出函式,退出前別忘了還要釋放鍊錶!同時create link這個函式中也要判斷head是否申請成功,...