經典資料結構之間接定址

2021-06-19 03:33:21 字數 1418 閱讀 2002

線性表主要有兩中表現方式,一種是連續儲存式,例如陣列,另一種是非連續儲存式,例如鍊錶。 相比於鍊錶,陣列最大的好處就在於可以隨機訪問,鍊錶的最大優勢是,能夠有效利用儲存空間,合理的新增,刪除操作只需要o(1)。於是誕生了間接定址,即是把陣列與鍊錶的優點結合起來。

**如下:

#ifndef indirectlist_hh

#define indirectlist_hh

#include templateclass cindrectlist; // cindrectlist;

// implement;

// constructors;

templatecindrectlist::cindrectlist(int size = 10):

m_nlength(0),m_nsize(size)

templatecindrectlist::~cindrectlist()

// insert data after (k-1)th element;

templatecindrectlist& cindrectlist::minsert(int k, const t& data)

if(m_nlength == m_nsize)

// move elements to contain k;

for(int i = m_nlength - 1; i >= k; i --)

// add data;

m_pptable[k] = new t;

*m_pptable[k] = data;

m_nlength ++;

return *this;

}// delete;

templatecindrectlist& cindrectlist::mdelete(int k, const t& data)

return *this;

}templatebool cindrectlist::mfind(int k, const t& data) const

return (*(m_pptable[k - 1]) == data) ? true : false;

}templateint cindrectlist::mlength() const

templateint cindrectlist::msize() const

#endif

測試**如下:

#include "indrectlist.h"

#include #include using namespace std;

int main()

結果如下:

1

2input wrong index in find

0請按任意鍵繼續. . .

資料結構 六 間接定址

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

資料結構系列之線性表(間接定址)

ifndef indirectlist h define indirectlist h include using namespace std template class indirectiterator template class indirectlist int length const b...

線性表綜合實驗之間接定址

includeusing namespace std const int max 100 templatestruct node templateclass indirectadd t number get int i int location get t x void insert int i,t...