《資料結構》實驗報告(二) 單鏈表儲存結構及實現

2021-10-10 15:04:05 字數 2488 閱讀 8363

一、實驗目的

(1) 掌握單鏈表的概念及實現方式。

(2) 掌握單鏈表的儲存結構及主要運算,如建立、查詢、插入、刪除等。

二、實驗環境

windows 10,microsoft visual c++ 2010 express

三、實驗內容

1、內容描述

定義乙個包含學生資訊(學號,姓名,成績)的鍊錶,使其具有如下功能:

(1) 根據指定學生個數,逐個輸入學生資訊;

(2) 逐個顯示學生表中所有學生的相關資訊;

(3) 根據姓名進行查詢,返回此學生的學號和成績;

(4) 根據指定的位置可返回相應的學生資訊(學號,姓名,成績);

(5) 給定乙個學生資訊,插入到表中指定的位置;

(6) 刪除指定位置的學生記錄。

2、實現**

#include

#include

#include

typedef

struct

student;

typedef

struct lnodelnode,

*linklist;

bool initlist

(linklist &l)

return true;

}bool displist

(linklist l)

linklist p;

p=l;

while

(p->next!=

null

)return true;

}bool deletelist

(linklist &l)

int i,j=0;

linklist p,q;

p=l;

printf

("輸入刪除的位置序號:");

scanf

("%d"

,&i)

;while

((p->next!=

null)&&

(j)if(!

(p->next!=

null)||

(j>i-1)

) q=p->next;

p->next=q->next;

delete q;

return true;

}bool inserlist

(linklist &l)

int i,j=0;

linklist p;

p=l;

printf

("輸入插入的位置序號:");

scanf

("%d"

,&i)

;while

(p&&

(j)if

(!p||j>i-1)

linklist s;

s=new lnode;

printf

("輸入插入的學生資訊,按「學號 姓名 成績」輸入\n");

scanf

("%s %s %d"

,&s->data.no,

&s->data.name,

&s->data.mark)

; s->next=p->next;

p->next=s;

return true;

}bool seeklist

(linklist l)

lnode *p;

p=l;

printf

("輸入查詢的姓名:");

scanf

("%s"

,na)

;while

(p->next!=

null)}

if(!flag)

printf

("未找到相關資訊!\n");

return true;

}bool seek2list

(linklist l)

lnode *p;

p=l;

printf

("輸入查詢的序號:");

scanf

("%d"

,&num)

;for

(int i=

0;p!=

null

&&i(p==

null

)printf

("學號:%s 姓名:%s 成績:%d\n"

,p->data.no,p->data.name,p->data.mark)

;return true;

}void

main()

}}

四、實驗體會

通過本次實驗,我掌握了定義線性表的鏈式儲存型別,加深了對鏈式儲存結構的理解,進一步鞏固和理解了單鏈表的基本操作,例如建立、查詢、插入和刪除等等。同時,也體會到了鍊錶在插入、刪除操作中的優點及鍊錶中新增頭結點的優點:便於首元結點的處理以及空表和非空表的統一處理。

資料結構實驗報告 資料結構實驗報告

使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...

資料結構實驗報告

1 掌握佇列儲存結構的表示和實現方法。2 掌握佇列的入隊和出隊等基本操作的演算法實現。3 了解佇列在解決實際問題中的簡單應用。1 建立順序迴圈佇列,並在順序迴圈佇列上實現入隊 出隊基本操作 驗證性內容 2 建立迴圈鏈佇列,並在迴圈鏈佇列上實現入隊 出隊基本操作 設計性內容 3 實現鍵盤輸入迴圈緩衝區...

資料結構實驗報告

1 理解二叉樹的型別定義與性質。2 掌握二叉樹的二叉鍊錶儲存結構的表示和實現方法。3 掌握二叉樹遍歷操作的演算法實現。4 熟悉二叉樹遍歷操作的應用。1 建立二叉樹的二叉鍊錶儲存結構。2 實現二叉樹的先序 中序和後序三種遍歷操作 驗證性內容 3 應用二叉樹的遍歷操作來實現判斷兩棵二叉樹是否相等的操作 ...