線性表的順序儲存(順序表)

2021-08-09 16:27:37 字數 2747 閱讀 3800

課程名:資料結構

實驗目的:

1、掌握線性表的定義;

2、掌握線性表的基本操作,如建立、查詢、插入和刪除等。

實驗要求:定義乙個包含學生資訊(學號,姓名,成績)的順序表和煉表,使其具有如下功能:

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

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

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

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

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

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

(7) 統計表中學生個數。

實驗題目:線性表的基本操作及其作用

實驗過程:

按照實驗要求編寫相應程式**,並除錯執行。

附:順序表與鍊錶操作的主函式**。

執行演示過程如下(

這部分不需要寫到報告上):

1、 建立乙個學生表(5個學生);

2、 顯示該表中所有的元素;

3、 根據姓名查詢到第3個學生的資訊並顯示;

4、 插入乙個新的學生並顯示全部學生資訊;

5、 刪除第3個學生的資訊並顯示全部學生資訊;

6、 統計學生表中元素的個數(即學生人數);

7、 退出

實驗結果:

能夠順利完成順序表和單鏈表的建立、插入、刪除等操作。

實驗分析:

1、順序表和單鏈表在各種操作實現過程中的差別

2、程式除錯執行中出現的錯誤資訊原因分析。

definition of structure student

typedef struct student;

definition of sequential list:

typedef  struct sqlist;

definition of linked list

typedef struct lnodelnode,*linklist;  

實驗要求:

(1) 程式要新增適當的注釋,程式的書寫要採用

縮排格式。

(2) 程式要具在一定的健壯性,即當輸入資料非法時,程式也能適當地做出反應,如

插入刪除時指定的位置不對

等等。

(3) 程式要做到介面友好,在程式執行時使用者可以根據相應的提示資訊進行操作。

(4)上傳源程式到課堂派。順序表的源程式儲存為

sqlist.cpp

,鍊錶的源程式儲存為

linklist.cpp。。

順序表:

#include #include #include #include #define overflow -1

#define error 2;

#define ok 1

#define maxsize 100

using namespace std;

typedef struct //多項式的順序儲存結構的型別定義

student;

typedef struct

sqlist;

int initlist(sqlist &l)

cout<<"請確認繼續"<>name;

int flag=0,m;

for(int i=1; i<=l.length; i++)

} if(flag==0)

cout<<"查無此人!"<>loc;

if(loc<1 || loc>l.length) {

cout<<"查無此人!"<>way;

switch(way)

{case 1:namechecklist(l); break;

case 2:locationchecklist(l); break;

default: cout<<"輸入有誤!請繼續"<>location;

if(location<1 || location>l.length)

{ cout<<"輸入有誤!(i值不合法)請重新輸入:"<=location; i--)

l.elem[i+1]=l.elem[i];

cout<<"請輸入插入學生資訊:"<>e.num;

cout<<"名字:";

cin>>e.name;

cout<<"成績:";

cin>>e.score;

l.elem[location]=e;

++l.length;

return 1;

cout<<"請確認繼續"<>location;

if(location<1 || location>l.length)

{ cout<<"輸入有誤!(i值不合法)請重新輸入:"<>n;

l.length = n;

inputlist(l);

cout<<"建立初始學生資訊成功"<>way;

switch(way)

{ case 1:showlist(l); break;

case 2:checklist(l); break;

case 3:insertlist(l); break;

case 4:deletelist(l); break;

case 5:exit(0); break;

default:cout<<"輸入資訊有誤!請確認繼續"<

線性表的順序儲存 順序表

一丶順序表 概念 採用順序儲存的線性表稱為順序表,順序表中邏輯上相鄰的資料元素在物理儲存位置上也是相鄰的。二丶定義順序表 用一維陣列來描述順序表的資料儲存。由於順序表有插入刪除等操作,即順序表的表長會發生改變。因此是陣列長度足夠大,加入整型變數length來記錄此時線性表中資料元素的個數,順序表的結...

線性表的順序儲存 順序表

線性表,簡稱表,是n n 0 個具有相同型別的資料元素的有限序列。1 線性表是乙個相當靈活的資料結構,對線性表的資料元素不僅可以進行訪問訪問,還可以進行插入和刪除等操作。2 a1稱為第1個元素,an稱為最後乙個元素,任意一對相鄰的資料元素a i 1 和a i 1序偶關係 且a i 1 稱為a i 的...

線性表的順序儲存 順序表

線性表可以按照其儲存結構劃分為順序表 鍊錶。如下圖 順序表 順序表的描述 1 陣列靜態分配 define maxsize 30 typedef int elemtype typedef structsqlist 2 陣列動態分配 define maxsize 30 typedef int elemt...