順序儲存結構的線性表

2021-06-01 07:45:20 字數 1862 閱讀 9218

順序儲存結構的線性表採用陣列實現,優點是隨機訪問;缺點是刪除時,需要移動資料,特別是當元素很多時,效率很低(針對此問題的解決方案是,採用間接定址)。

以下是採用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...