#包含《stdlib.h》
//創建壹個以數據為值並指向NULL的節點。
node * Create(int value ){
Node * head =(Node *)malloc(sizeof(Node));
head-》data = value;
head-》next = NULL;
returnhead
}
//銷毀鏈表
bool destroy _ List(Node * head ){
節點*溫度;
while(頭)
temp = head-》next;
免費(頭);
head = temp
}
head = NULL
returntrue
}
//在表後添加壹個節點,創建(值)
boolapend(Node * head,int value ){
Node*n=Create(值);
Node * temp = head
while(temp-》next ){
temp = temp-》next;
}
temp-》next = n;
return0
}
//打印鏈接列表
void print _ List(Node * head ){
node * temp = head-》next;
當(溫度){
printf(“% d-》“,temp-》data);
temp = temp-》next;
}
printf(" \ n ");
}
//在鏈表中的定位節點(第壹個節點為0)後插入創建的節點Create(value)。
boolInsert _ List(Node * head,intlocate,int value ){
Node * temp = head
node * p;
Node*n=Create(值);
如果(定位《0)
returnfalse
while(locate-){
if(temp-》next = = NULL ){
temp-》next = Create(value);
returntrue
}
temp = temp-》next;
}
p = temp-》next;
temp-》next = n;
n-》next = p;
returntrue
}
//刪除定位節點之後的節點(第壹個節點為0)
bool delete _ List(Node * head,int locate ){
Node * temp = head
node * p;
如果(定位《0)
returnfalse
while(locate-){
if(temp = = NULL ){
returnfalse
}
temp = temp-》next;
}
p = temp-》next-》next;
free(temp-》next);
temp-》next = NULL;
temp-》next = p;
returntrue
}
//獲取鏈表的長度(不包括頭節點)
int size _ List(Node * head ){
Node * temp = head
int size = 0;
while(temp-》next ){
temp = temp-》next;
size++;
}
returnsize
}
//三種類型的鏈表(選擇、插入和冒泡)
boolSort _ List(Node * head ){
intt = 0;
int Size = Size _ List(head);
//選擇排序
/* for(Node * temp = head-》next;臨時的!= NULLtemp = temp-》next ){
for(Node * p = temp;p!= NULLp = p-》next ){
if(溫度-》數據》p-》數據){
printf(“change % d and % d \ n“,temp-》data,p-》data);
t = temp-》data;
temp-》data = p-》data;
p-》data = t;
}
}
}*/
//插入排序
/* for(Node * temp = head-》next-》next;臨時的!= NULLtemp = temp-》next ){
for(Node * p = head;p-》下壹個!= NULLp = p-》next ){
if(p-》next-》data》temp-》data)
{
printf(“change % d and % d \ n“,temp-》data,p-》next-》data);
t = temp-》data;
temp-》data = p-》next-》data;
p-》next-》data = t;
}
}
}*/
//冒泡排序
for(Node * temp = head-》next;臨時-》下壹個!= NULLtemp = temp-》next ){
for(Node * p = head-》next;p-》下壹個!= NULLp = p-》next ){
if(p-》數據》p-》下壹個-》數據){
t=p-》數據;
p-》data = p-》next-》data;
p-》next-》data = t;
}
}
}
return0
}
擴展數據:
Return的意思是將程序流程從被調用的函數轉向主音函數,並將表達式的值帶回主音函數,以實現函數值的返回,返回值可以伴隨返回值,返回值由return後的參數指定。
Return通常是必要的,因為調用函數時計算結果通常由返回值帶出。如果函數執行不需要返回計算結果,往往需要返回壹個狀態碼來表示函數執行是否順利(-1和0是最常用的狀態碼),主調優函數可以通過返回值來判斷調優函數的執行情況。