實驗二 間接定址實現學生成績

2021-08-09 04:44:25 字數 2754 閱讀 3870

源**

#include

using namespace std;

template< class t>

class node ;

const int maxsize = 100; //常量指定陣列長度

template

class indirect

//返回單鏈表的長度

t get(int i); //按位查詢,查詢第i個節點的元素

int locate(t x); //按值查詢,查詢鍊錶中第乙個值為x的元素,並返回序號

bool insert(int i, t x); //插入元素,在第i個位置插入值x

bool delete(int i); //刪除節點,刪除第i個節點

void printlist(); //遍歷節點

private:

node

*first;

int length;

node

*address[maxsize]; //node指標型的陣列

};template

indirect

::indirect() first = new node

; //空鍊錶的初始化,同無參建構函式 first->next = null; for (int i = 0; i

*s = new node

; s->data = a[i]; s->next = first->next; first->next = s; } length = n; node

*p =first; /*臨時指標*/ for (int j = 0; j < length;j++) /*將指標位址存入陣列*/ } template

indirect

::~indirect() //析構函式 length = 0; } template

t indirect

::get(int i) //按位查詢,返回第i個節點的元素 else if(i<=0) node

*p = address[i - 1]; return p->data; } template

int indirect

::locate(t x) //按值查詢,返回d第乙個匹配值的序號 p = p->next; count++; } return -1; //返回-1表示沒有找到 } template

bool indirect

::insert(int i, t x) //往煉表中插入元素,i為要插入的位置,x為要插入的值 else if (i<=0) else if (length>=maxsize) node

*p = first; int count = 0; int num = i - 1; while (p != null && count

next; count++; } if (p == null) else address[i] = s; //新位址 return true; } } template

void indirect

::printlist() } template

bool indirect

::delete(int i) node

*p = first; int count = 0; while (p != null && count < i - 1) if (p == null) else return true; } } int main() ; indirect

slist(a, 8); int flag,i,x,t; flag=0; while(flag==0) { cout<

>t; switch(t) { case 1: cout<

<

>i; x=slist.get(i); cout<

<

>x; i=slist.locate(x); cout<

<

>i; cout<>x; slist.insert(i,x); cout<

>i; slist.delete(i); cout<

執行結果

執行程式,進入主介面

輸入1,輸出表長

輸入6,遍歷

輸入2,查詢第6個位置的成績

輸入3,查詢成績91所在的位置

輸入4,在第六個位置插入85

輸入5,刪除第二個位置的成績

實驗3 間接定址

一 實驗目的 鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二 實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。用間接定址實現 三 實驗步驟 1 依...

實驗3 間接定址

include using namespace std const int maxsize 100 templatestruct node templateclass indirectaddress 無參構造 templateindirectaddress indirectaddress 有參構造 ...

資料結構 六 間接定址

其實在作為鍊錶成員函式的箱子排序中已經用到間接定址,即指向指標的指標。chiannode bottom,top bottom new chainnode range 1 top new chainnode range 1 這裡的bottom儲存的資料型別為chainnode 的指標型別,指向指標的b...