C 儲存資料結構之二CArray

2021-06-25 14:19:54 字數 2463 閱讀 1495

函式簡介

carray::getsize 

int getsize( ) const;

取得當前陣列元素個數.

carray::getupperbound 

int getupperbound( ) const;

最得最大的元素的索引,由於c的陣列是從0開始,所以此函式的返回值比getsize的返回值比小.

carray::setsize 

void setsize( int nnewsize, int ngrowby = -1 );

throw( cmemoryexception );

設定陣列的大小.

carray::freeextra 

void freeextra( );

釋放未使用的空間.

carray::removeall 

void removeall( );

刪除所有的元素.

carray::getat 

type getat( int nindex ) const;

根據索引(引數)取得某個陣列元素的值.

carray::setat 

void setat( int nindex, arg_type newelement );

將第nindex的元素的值設定成newelement.

carray::elementat 

type& elementat( int nindex );

取得第nindex個元素的引用.

carray::getdata

const type* getdata( ) const;

type* getdata( );

取得靜態陣列指標.

void setatgrow( int nindex, arg_type newelement );

throw( cmemoryexception );

將第nindex個元素設定成newelement,如果陣列元素不夠,會增加空間.

carray::add 

int add( arg_type newelement );

throw( cmemoryexception );

增加乙個元素.

將另乙個陣列追加過來.

void copy( const carray& src );

複製陣列,已經內容將會被覆蓋.

carray::insertat 

void insertat( int nindex, arg_type newelement, int ncount = 1 );

throw( cmemoryexception );

void insertat( int nstartindex, carray* pnewarray );

throw( cmemoryexception );

插入乙個元素(或另乙個陣列)到陣列.

carray::removeat 

void removeat( int nindex, int ncount = 1 );

刪除另乙個元素.

carray::operator [ ] 

type& operator ( int nindex );

type operator ( int nindex ) const;

通過索引設定或取得另乙個元素.

使用例項

#include "afxtempl.h"

//...

carray 

ardatas;//定義乙個整數陣列

ardatas.setsize(5);//設定大小為五個元素

int isize = ardatas.getsize();//大小為5

int iupperbound = ardatas.getupperbound();//最大索引為4

//下面演示三種方法設定取得值

//將索引為1的元素的值設定成3,並取得它

ardatas.setat(1,3);

int idata = ardatas.getat(1);

//將索引為2的元素的值設定成5,並取得它

ardatas[2] = 5;

idata = ardatas[2] ;

//將索引為3的元素的值設定成7,並取得它

int& iele = ardatas[3] ;

iele = 7 ;

idata = ardatas[3] ;

//增加乙個元素8

ardatas.add(8);

idata = ardatas[5];

//在索引1的元素處插入乙個無素1

ardatas.insertat(1,1);

idata = ardatas[1];

//刪除索引為0的元素

ardatas.removeat(0);

//取得int*指標,出於速度考慮

int* pdata = ardatas.getdata();

資料結構之二(hash)

hash表 hash表作為一種動態集合資料結構,一般只支援 插入 查詢 刪除操作 而且每個操作的時間複雜度一般控制在o 1 內。hash表是普通陣列的一種推廣。因為陣列可以在直接通過下標來定位要查詢的元素,時間為o 1 因此hash表目標也是使用一些技術,以達到可以在o 1 的時間內完成操作。嚴格來...

資料結構 資料結構之二分查詢

先上 二分查詢,陣列必須為有序的 int binarysearch int key,int a,int length return 1 該函式接受乙個整數鍵和乙個已經有序的int陣列及陣列的大小作為引數。如果該鍵存在於陣列中則返回它的索引,否則返回 1.演算法使用兩個變數lo和hi,並保證如果鍵在陣...

資料結構之二叉樹 C 二

目錄 table of contents 類的部分實現 二叉樹是一種特殊的樹,在上一節中也介紹了樹的其他形式,例如 霍夫曼樹,b樹等。其中,二叉樹的常用操作有 1.確定樹高 2.確定元素數目 3.複製 4.顯示或列印二叉樹 5.確定兩顆二叉樹是否一樣 6.刪除整顆樹 這些操作都可以通過有步驟的遍歷二...