C 實現的間接定址

2021-09-20 01:23:02 字數 1750 閱讀 7370

之前學過,資料描述方法中有公式化描述,鍊錶描述,間接定址和模擬指標,在之前已經將公式化描述和鍊錶描述通過**的形式展現出來了,現在貼出簡介定址的**。其中簡介定址是融合了公式化描述和鍊錶描述的有點,使用乙個指標表來記錄資料的位置,指標表相當於乙個陣列,這樣在插入,刪除的時候,其中的資料的位置並沒有發生變化,而僅僅就是指標表的指向發生了變化,同時很多操作又能像公式化一樣通過o(1)的複雜度進行操作。下面貼出我的**:

#ifndef _indirect_h_

#define _indirect_h_

#include "exception.h"

#include

template

class indirectlist

/*返回鍊錶的長度*/

int length() const

/*看能否找到第k個元素,找到後給x賦值*/

bool find(int k,t& x) const;

/*找到元素是x的元素的位置*/

int search(const t& x) const;

/*從鍊錶中刪除第k個元素,並賦值給x*/

indirectlist& delete(int k,t& x);

/*在鍊錶的第k個位置插入元素x*/

indirectlist& insert(int k,const t& x);

/*列印輸出整個鍊錶*/

void print();

private:

int length; //鍊錶的長度

int maxsize; //鍊錶的最大長度

t **table; //模擬指標表

};template

indirectlist::indirectlist(int maxlistsize)

template

indirectlist::~indirectlist()

template

bool indirectlist::find(int k, t &x) const

template

indirectlist& indirectlist::delete(int k, t &x)

length--; //當前長度減一

return *this;

}else

}template

indirectlist& indirectlist::insert(int k, const t &x)

/*** 新建乙個間接位址

*/table[k] = new t;

*table[k] = x;

length++;

return *this;

}template

int indirectlist::search(const t &x) const

}return -1;

}/**

* 列印輸出整個鍊錶的內容

*/template

void indirectlist::print()

std::cout

<< std::endl;

}#endif

**相對來說比較簡單,只不過其中比較難懂的就是

t** table,其中table指向的是t**,

table指向的是t,也就是資料t的位址,由此可知table指向的是資料的位址的位址,進行乙個間接定址,這個類似於計算機組成原理上的簡介定址。

好好體會一下,就會明白的!!加油!!

C 實現的間接定址

之前學過,資料描述方法中有公式化描述,鍊錶描述,間接定址和模擬指標,在之前已經將公式化描述和鍊錶描述通過 的形式展現出來了,現在貼出簡介定址的 其中簡介定址是融合了公式化描述和鍊錶描述的有點,使用乙個指標表來記錄資料的位置,指標表相當於乙個陣列,這樣在插入,刪除的時候,其中的資料的位置並沒有發生變化...

間接定址實現

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

間接定址的實現

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