/*編寫函式slnklist delx(linklist head, datatype x),刪除不帶頭結點單鏈表head中第乙個值為x 的結點。
並構造測試用例進行測試。
*//**********************************/
/*檔名稱:lab2_01.c */
/**********************************/
#include "slnklist.h"
/*請將本函式補充完整,並進行測試*/
linklist delx(linklist head,datatype x)
if(p)
else
}return head;
}int main()
/**********************************/
/*檔名稱:lab2_02.c */
/**********************************/
/*假設線性表(a1,a2,a3,…an)採用不帶頭結點的單鏈表儲存,
請設計演算法函式linklist reverse1(linklist head)和
void reverse2(linklist *head)將不帶頭結點的單鏈表head就地倒置,
使表變成(an,an-1,…a3.a2,a1)。並構造測試用例進行測試。
*/#include "slnklist.h"
/*請將本函式補充完整,並進行測試*/
linklist reverse1(linklist head)
return head;
}void reverse2(linklist *head) //不返回值,那就從指標上下手
}int main()
/*
假設不帶頭結點的單鏈表head是公升序排列的,設計演算法函式linklist insert(linklist head,datatype x),
將值為x的結點插入到鍊錶head中,並保持鍊錶有序性。
分別構造插入到表頭、表中和表尾三種情況的測試用例進行測試。
*//**********************************/
/*檔名稱:lab2_03.c */
/**********************************/
#include "slnklist.h"
/*請將本函式補充完整,並進行測試*/
linklist insert(linklist head ,datatype x)
if(!pre) //插在表頭
else
return head;
}int main()
/*
編寫演算法函式linklist delallx(linklist head, int x),刪除不帶頭結點單鏈表head中所有值為x的結點。
*//**********************************/
/*檔名稱:lab2_04.c */
/**********************************/
#include "slnklist.h"
/*請將本函式補充完整,並進行測試*/
linklist delallx(linklist head,int x)
else
}if(head)//如果刪除的不是第乙個
else
}
}return head;
}int main()
slnklist.h
#include /**************************************/
/* 鍊錶實現的標頭檔案,檔名slnklist.h */
/**************************************/
typedef int datatype;
typedef struct link_nodenode;
typedef node *linklist;
/**********************************/
/*函式名稱:creatbystack() */
/*函式功能:頭插法建立單鏈表 */
/**********************************/
linklist creatbystack()
return head; /*返回建立的單鏈表*/
}/**********************************/
/*函式名稱:creatbyqueue() */
/*函式功能:尾插法建立單鏈表 */
/**********************************/
linklist creatbyqueue()
if (r) r->next=null;
return head; /*返回建立的單鏈表*/
}/**********************************/
/*函式名稱:print() */
/*函式功能:輸出不帶頭結點的單鏈表 */
/**********************************/
void print(linklist head)
printf("\n");
}/**********************************/
/*函式名稱:dellist() */
/*函式功能:釋放不帶頭結點的單鏈表 */
/**********************************/
void dellist(linklist head)
}
資料結構(不帶頭結點的單鏈表)
單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料 在寫單鏈表的時候,需要對結構體有一定的了解 這裡就不做過多的結構...
資料結構 單鏈表 帶頭結點和不帶頭結點
1 單鏈表 通過各結點的鏈結指標來表示結點間的邏輯關係,長度可擴充,遍歷或查詢 2 只能從指標的指示的首元結點開始,跟隨鏈結指標逐個結點進行訪問,進行刪除或插 4 5 6 單鏈表的結構定義 7 typedef int datatype 8 typedef struct node 9 linknode...
資料結構篇 單鏈表倒置(帶頭結點 不帶頭結點)
初始化如圖 1.我們需要把1這個結點作為最後乙個結點,所以要把1的next指向null 2.然後我們要新建結點,指向headnext的下一位,並把headnext的下一位指向headpre,3.headpre指向headnext為下一次迴圈做準備 headpre headnext 4.如果tempn...