一、實驗目的
鞏固線性表的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。
二、實驗內容
建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入、刪除、查詢等操作。分別輸出結果。用間接定址實現『』
三、實驗步驟
1、依據實驗內容分別說明實驗程式中用到的資料型別的定義:
inadd();//
無參建構函式
inadd(datatype score,int n);//
有參建構函式
~inadd();//
析構函式
void print();//
遍歷操作
datatype get(int i);//
按位查詢操作
int locate(datatype x);//
按值查詢操作
void insert(int i,datatypex);//
插入操作
datatype delete(int i);//
刪除操作
2、相關操作的演算法表達
定義間接定址類的資料型別,包括插入、刪除、查詢、輸出等基本操作。
源程式如下
#ifndef inadd_h
#define inadd_h
const int maxsize=10;
template
struct node
; template
class inadd;
#endif
#include
#include "inadd.h"
using namespace std;
template
inadd::inadd()
template
inadd::inadd(datatype score,int n)
} template
inadd::~inadd() //
析構函式
}
template
void inadd::insert(int i,datatype x)
if(p==null)throw"
位置非法";
s=new node;
s->data=x;
s->next=p->next;
p->next=s;
length++;
} template
datatype inadd::delete(int i)
if(p==null||p->next==null)throw"
位置"; //結點p不存在或p後繼結點不存在
else
}
template
datatype inadd::get(int i)
if(p==null)throw"
位置非法";
else
return p->data;
}
template
int inadd::locate(datatype x)
return 0;
}
template
void inadd::print()
} #include
using namespace std;
#include "inadd.cpp"
int main()
; inaddstudent(score,5);
cout << "
學 生 成 績"
cout<
cout<< "
在位置2插入成績81";
student.insert(2,81);
cout<
cout<
插入操作後學生成績為:"<
student.print();
cout<
cout << "
位置4的成績為:" << student.get(4) << endl;
cout << "
成績90所在位置為:" << student.locate(90) << endl;
cout<< "
刪除位置3的學生成績"
cout<< "
執行刪除操作後的學生成績為:"<< endl;
student.print();
cout<
return 0;
}執行結果如圖
實驗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...
實驗二 間接定址實現學生成績
源 include using namespace std template class t class node const int maxsize 100 常量指定陣列長度 template class indirect 返回單鏈表的長度 t get int i 按位查詢,查詢第i個節點的元素 ...