順序儲存結構的線性表採用陣列實現,優點是隨機訪問;缺點是刪除時,需要移動資料,特別是當元素很多時,效率很低(針對此問題的解決方案是,採用間接定址)。
以下是採用c++語言的實現**:
/**
* list.h
*/#pragma once
/** * @descripton : 順序儲存結構的線性表,容量不足時,自動增倍
* @date : 2011-10-29
* @author : mjn
*/template < class t >
class list
;template < class t >
list< t >::list(int c)
}template < class t >
list< t >::~list(void)
}template < class t >
void list< t >::clear()
len = 0;
capacity = 10;
data = new t[capacity];
}template < class t >
int list< t >::getlength()
template < class t >
int list< t >::getcapacity()
template < class t >
bool list< t >::isempty()
template < class t >
t list< t >::getdata(int index)
return data[index];}/*
* 檢查容量是否不夠,如果沒有剩餘,則自動增倍
*/template < class t >
void list< t >::ready()
else
}}/**
* 將陣列src的n個資料拷貝到dst中
*/template < class t >
void list< t >::arraycopy(t *dst, int dststart, const t *src, int srcstart, int n)
}/**
* 新資料附加到末尾
*/template < class t >
void list< t >::adddata(t t)
/** * 在指定位置增加新資料
*/template < class t >
void list< t >::adddata(t t, int index)
ready();
for (int i = len - 1; i >= index; i--)
data[index] = t;
len++;
}/**
* 刪除指定位置的資料
*/template < class t >
t list< t >::deletedata(int index)
t temp = data[index];
for (int i = index + 1; i < len; i++)
len--;
return temp;
}/**
* 列印陣列中的資料,僅用於測試
*/template < class t >
void list< t >::print()
}
在microsoft visual studio 2010中,如果將模板類放在實現放在另乙個檔案中(如list.cpp),則會提示出錯。
注:1. 測試ide:microsoft visual studio 2010
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表 線性表的順序儲存結構
線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...
線性表 線性表的順序儲存結構
include include using namespace std define ok 1 define error 0 define list init size 100 define listincrement 10 typedef int status typedef int elemty...