資料結構實驗1 線性表的順序實現

2021-07-25 04:27:01 字數 3181 閱讀 2572

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

線性表的一種,是與記憶體結構對應的,故稱之為線性順序表。資料結構第二周目,整理下以前的 對應書上的p19 p26。typedef struct sqlist 順序表 2017 04 23 c2 1.h 線性表的動態分配順序儲存結構。在教科書第22頁 define list init size 30 ...

資料結構(1) 線性表(順序儲存結構)

概念 指的是用一段位址連續的儲存單元依次儲存線性表的資料元素 用一維陣列來實現順序儲存結構 重要屬性 儲存空間的起始位置 線性表的最大儲存量 線性表的當前長度 優點 無須為表示表中元素之間的邏輯關係而增加額外的儲存空間 可以快速的檢視任意位置的元素。缺點 插入和刪除操作需要移動大量元素 當線性表長度...

資料結構 順序線性表

順序線性表標頭檔案 ifndef vzhangseqlist define vzhangseqlisttypedef void seqlist typedef void seqlistnode 建立線性表 declspec dllexport 如果在動態庫中定義標頭檔案 這句話不可以缺少 不然會報錯...