實驗報告名稱:
實驗目的:
1.掌握單向鍊錶的儲存特點及其實現。
2.掌握單向鍊錶的插入、刪除演算法及其應用演算法的程式實現
實驗報告(實驗內容、實驗步驟、實驗執行結果分析、實驗小結)
實驗內容:
1.鍵盤輸入一組元素,建立乙個帶頭結點的單向鍊錶(無序)。
2.遍歷單向鍊錶。
3.把單向鍊錶中元素逆置(不允許申請新的結點空間)。
4.在單向鍊錶中刪除所有的偶數元素結點。
5.編寫在非遞減有序鍊錶中插入乙個元素使鍊錶元素仍有序的函式,並利
用該函式建立乙個非遞減有序單向鍊錶。
6.利用演算法5 建立兩個非遞減有序單向鍊錶,然後合併成乙個非遞增鍊錶。
7.利用演算法5 建立兩個非遞減有序單向鍊錶,然後合併成乙個非遞減鍊錶。
8.利用演算法1 建立的鍊錶,實現將其分解成兩個鍊錶,其中乙個全部為奇
數,另乙個全部為偶數(盡量利用已知的儲存空間)。
* 9.採用單向鍊錶實現一元多項式的儲存並實現兩個多項式相加並輸出結
果。10.在主函式中設計乙個簡單的選單,分別除錯上述演算法。
#include <>
#include <>
#include <>
/*構建結點結構體 */
typedef struct lnodelnode, * linklist;
/*用於建立鍊錶的函式 */
/*反序構建的*/
linklist createlist_l(linklist l, int n)
return l;
}int listlength_l(linklist l)
return i;
}/* 用於插入結點的函式 */
linklist listinsert_l(linklist l, int i, int newnode)
if(!p||j>i-1)
s = (linklist)malloc(sizeof(lnode));
s->data = newnode;
s->next = p->next;
p->next = s;
return l;
}/* 用於刪除結點的函式 */
linklist listdelete_l(linklist l, int i)
if(!(p->next)||j>i-1)
s = p->next;
p->next = s->next;
printf("%s%d\n","被刪除的結點是:",s->data);
free(s);
return l;
}linklist getlistelem_l(linklist l, int i,int *flag,int *elem)
if(!(p->next)||j>i-1)
s = p->next;
*flag=1;
*elem=s->data;
return l;
}/*用於遍歷鍊錶的函式 */
void listdisp_l(linklist l)
}/* 選擇排序演算法 */
linklist listsort_l(linklist l)
l=h1->next;
free(h1);
return l;
}int getoptions()
int main(int argc, char* ar**)
{ int opt;
int where;
int value;
int count;
int tag;
linklist l;
while(1)
{opt = getoptions();
if(opt == 1)
printf("請輸入鍊錶初始結點數:");
scanf("%d",&count);
printf("請輸入各個結點數值,每輸入乙個按回車確認:\n");
l = createlist_l(l, count);
單鏈表實驗報告
計算機與資訊科技學院綜合性 設計性實驗報告 專業 網路工程年級 班級 大二 2016 2017學年第一學期 一 實驗目的 1 熟悉順序表的建立 取值 查詢 插入 刪除等演算法,模組化程式設計方法。二 實驗儀器或裝置 1 硬體裝置 cpu為pentium 4以上的計算機,記憶體2g以上 2 配置軟體 ...
單鏈表操作實驗報告
線性表一 實驗目的 1.了解線性表的邏輯結構特徵,以及這種特性在計算機內的兩種儲存結構。2.掌握線性表的順序儲存結構的定義及其c語言實現。3.掌握線性表的鏈式村粗結構 單鏈表的定義及其c語言實現。4.掌握線性表在順序儲存結構即順序表中的各種基本操作。5.掌握線性表在鏈式儲存結構 單鏈表中的各種基本操...
單鏈表的插入和刪除
實驗一單鏈表的插入和刪除 4個機時 1.1實驗目的 已知線性表中元素為 tankk you 利用模組化程式設計思想,程式設計實現如下函式功能 1 建立乙個帶頭結點的單鏈表,將線性表中元素依次放入 函式1 輸出該單鏈表中各元素 函式4 2 刪除單鏈表中的第四個元素 函式2 輸出執行刪除操作之後的單鏈表...