資料結構實驗2 不帶頭結點的單鏈表

2021-07-25 04:28:03 字數 3181 閱讀 1065

/*編寫函式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...