資料結構實驗以下是我實現1-4的**:實驗二、單鏈表(2學時)
1.設計實驗 設計演算法,實現線性結構上的單鏈表的產生以及元素的查詢、插入與刪除。(1-4題必做,5-8題選做)具體實現要求: (1)用正位序的方法,建立乙個由13個整數構成的帶頭結點的單鏈表。建議13個整數由鍵盤輸入。
(2)從鍵盤輸入1個整數,在單鏈表中查詢該結點的位置。若找到,則顯示「找到了」;否則,則顯示「找不到」。
(3)從鍵盤輸入2個整數,乙個表示欲插入的位置i,另乙個表示欲插入的數值x,將x插入在對應位置上,輸出單鏈表所有結點值,觀察輸出結果。
(4)從鍵盤輸入1個整數,表示欲刪除結點的位置,輸出單鏈表所有結點值,觀察輸出結果。
*(5)將單鏈表中值重複的結點刪除,使所得的結果表中個結點值均不相同,輸出單鏈表所有結點值,觀察輸出結果。
*(6)刪除其中所有資料值為偶數的結點,輸出單鏈表所有結點值,觀察輸出結果。
*(7)把單鏈表變成帶表頭結點的迴圈鍊錶,輸出迴圈單鏈表所有結點值,觀察輸出結果。
*(8)將單鏈表分解成兩個單鏈表a和b,使a鍊錶中含有原煉表中序號為奇數的元素,而b鍊錶中含有原煉表中序號為偶數的元素,且保持原來的相對順序,分別輸出單鏈表a和單鏈表b的所有結點值,觀察輸出結果。
#include
#include
#define ok 1
#define error 0
#define ture 1
#define false 0
typedef
struct linkedlist //定義單鏈表結構體
linkedlist,*linklist; //定義單鏈表例項linkedlist和*next
int initlist(linklist &list) //建立單鏈表的方法
int insertlist(linklist &list,int i,int e) //在單鏈表中第i位置插入元素e
//將指標直到插入位元素
s=(linklist)malloc(sizeof(linkedlist)); //新增新元素
s->data=e;
s->next=l->next; 指向下乙個元素
l->next=s; 指向s,實現s的插入
return ok;
}int findifelem(linklist &list,int i) //查詢鍊錶list中是否存在元素i
return false; //沒有找到元素,返回false
}int displaylist(linklist &list) //輸出鍊錶list中的所有元素
//迴圈輸出值,直到最後乙個
printf("\n");
return ok;
}int deleteelem(linklist &list,int i) //刪除鍊錶list中的第i位元素
s=l->next; //用s記錄第i位元素的值
l->next=s->next; //將i-1位的指標直接指到原第i+1位元素上
free(s); //釋放s
return ok; //成功則返回ok
}int main()
displaylist(h);
printf("\n請輸入要查詢的元素:");
scanf("%d",&x);
if (findifelem(h,x)) printf("\n找到了");
else
printf("\n沒找到");
printf("\n請輸入要插入的位數和數字(空格隔開):");
scanf("%d %d",&n,&x);
if (!insertlist(h,n,x)) printf("輸入位數不合法.\n");
displaylist(h);
printf("\n請輸入要刪除的位數:");
scanf("%d",&n);
if(!deleteelem(h,n)) printf("輸入位數不合法.\n");
displaylist(h);
return ok;
}
資料結構實驗二 單鏈表的基本操作
程式設計實現單鏈表的基本操作 建立單鏈表,查詢單鏈表,插入單鏈表,刪除單鏈表 採用單鏈表結構程式設計實現 兩個有序單鏈表的歸併運算。掌握線性表的鏈式儲存結構 掌握單鏈表及其基本操作的實現。本實驗專案可以支撐 目標1.理解資料結構的基本概念 計算機內部資料物件的表示和特性。掌握線性表 樹 圖等資料邏輯...
資料結構實驗3 單鏈表的基本操作實現
寫的如果有不太好的地方,歡迎大佬指點!實驗3 單鍊錶的基本操作實現 1 實驗目的 通過該實驗,深入理解鍊錶的邏輯結構 物理結構等概念,掌握鍊錶基本操作的程式設計實現,熟練掌握c語言中指標的操作。和實驗3對比,掌握線性結構兩種不同儲存方式的區別。2 實驗內容 程式設計實現鍊錶下教材第二章定義的線性表的...
資料結構實驗二之單鏈表
1.建立乙個由 n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。用單鏈表來實現。includeusing namespace std struct node class stu stu stu double a,int...