陣列:是由同一種資料型別的資料元素組成的線性表,組成陣列的資料元素可以是初等項,也可以是組合項。
一維的陣列又稱為向量,二維的陣列又稱為矩陣。
陣列的抽象資料型別表示:
template#define defaultsize 100
enum boolean;
class array
int getlength(void)const
//取陣列中第i個結點的值,若存在,則返回該點的值。否則返回null。
t getnode(int i)
//查詢值為x的結點,若找到,則返回序號,否則返回-1.
int find(t&x)
}
陣列元素的插入和刪除:c++描述為:
template boolean array::insert(t&x,int i) //在陣列中第i個位置插入值為x的新的元素
}template boolean array::remove(int i) //刪除函式
{ //刪除成功則返回true,否則返回false。
if (arraylength==0)
{cerr<<"array is empty"{cerr<<"position error"《陣列的應用:
1.求集合的「並運算」和「交運算」。集合可以用陣列來表示, 利用陣列的類定義來實現所要求的運算。
「並」運算的實現:(c++ code)
template void union(array&va,array&vb) //把陣列va和vb中的相同元素,並存入vb
{ int n=va.getlength();
int m=vb.getlength();
for(int i=0;i「交」運算的實現:(c++ code)
templatevoid intersection(array&va,array&vb) //求va和vb中的相同元素,並存入vb
{ int n=va.getlength();
int m=vb.getlength();
int i=0;
while(ithe end;
資料結構基礎知識
時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...
資料結構基礎知識
一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...
資料結構基礎知識
簡單的說,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。描述一類非數值計算問題的數學模型不再是數學方程,而是諸如表 樹和圖之類的資料結構。資料結構 的研究不僅涉及到計算機硬體 特別是編碼理論 儲存裝置和訪問方法等 的研究範圍,而且和計算機軟體的研究有著...