定義
線性表是最簡單、最基本、最常用的資料結構。線性結構的特點是結構中的資料元素之間存在一對一的線性關係。總的來說,線性表就是位置有先後關係,乙個接著乙個排列的資料結構。
實現方式
順序表、單鏈表、雙向鍊錶、迴圈鍊錶
clr中的線性表
//順序表
list<
int> intlist =
newlist
<
int>()
;
定義線性表的介面(順序表)inte***ce
ilistds
//定義乙個索引器獲取元素
tgetelem
(int index)
;//取表元
intlocate(t
value);
//按值查詢
}
///
/// 順序表實現方式
///
///
class
seqlist
: ilistds
public
seqlist()
:this(10
)//預設容量是10
public
tthis
[int index]
=>
throw
newnotimplementedexception()
;public
intgetlength()
public
void
add(
t item)
else
}public
tgetelem
(int index)
else
}public
void
clear()
public
tdelete
(int index)
count--
;return temp;
}public
void
insert
(t item,
int index)
data[index]
= item;
count++;}
public
bool
isempty()
public
intlocate(t
value)}
return-1;}}
單鏈表
線性表的另外一種儲存結構——鏈式儲存(linked storage),這樣的線性表叫鍊錶(linked list)。
}//把新來的節點放到鍊錶的尾部
temp.next = newnode;}}
public
void
clear()
public
tdelete
(int index)
else
node prenode = temp;
node currentnode = temp.next;
data = currentnode.data;
node nextnode = temp.next.next;
prenode.next = nextnode;
}return data;
}public
tgetelem
(int index)
public
intgetlength()
else
}return count;
}public
void
insert
(t item,
int index)
else
node prenode = temp;
node currentnode = temp.next;
prenode.next = newnode;
newnode.next = currentnode;}}
public
bool
isempty()
public
intlocate(t
value
)else
else
else}}
return-1
;}}}
順序表和煉表的對比
雙向鍊錶
迴圈鍊錶
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...