隨風 資料結構 線性表

2021-10-08 00:28:05 字數 2723 閱讀 9844

定義

線性表是最簡單、最基本、最常用的資料結構。線性結構的特點是結構中的資料元素之間存在一對一的線性關係。總的來說,線性表就是位置有先後關係,乙個接著乙個排列的資料結構。

實現方式

順序表、單鏈表、雙向鍊錶、迴圈鍊錶

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...