資料結構實驗二 單鏈表的基本實現

2021-07-08 15:19:30 字數 2447 閱讀 4141

資料結構實驗

實驗二、單鏈表(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的所有結點值,觀察輸出結果。

以下是我實現1-4的**:

#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...