#include
using
namespace std;
//靜態順序表
typedef
struct
l1;//動態順序表
typedef
struct
l2;//動態順序表初始化
void
l2_init
(l2* l)
//插入(動態順序表)
void
l2_insert
(l2* l,
int i,
int e)
int*p = l-
>a + i -1;
for(
int*q = l-
>a + l-
>length -
1; q >= p; q--
)*p = e;
l->length +=1
;}//刪除(動態順序表)
void
l2_delete
(l2 *l,
int i,
int*e)
l->length -=1
;}//單鏈表
typedef
struct list
list,
*linklist;
//按位置查詢(單鏈表)
void
list_search
(linklist l,
int i,
int*e)if(
!p || j > i)
exit(-
1);*e = p-
>data;
}//按值查詢(單鏈表)
linklist list_searchvalue
(linklist l,
int e)
return
null;}
//插入 (單鏈表)
void
list_insert
(linklist &l,
int i,
int e)if(
!q || j > i)
exit(-
1); linklist p =
(linklist)
malloc
(sizeof
(list));
if(!p)exit(-
1); p-
>data = e;
p->next = q-
>next;
q->next = p;
}//刪除(單鏈表)
void
list_delete
(linklist &l,
int i,
int*e)
//頭插法建立單鏈表
void
list_create_head
(linklist &l,
int n)
}//尾插法建立單鏈表
void
list_create_tail
(linklist &l,
int n)
}//鍊錶逆置
void
list_reverse
(linklist &l)
}//鍊錶逆置
void
list_reverse2
(linklist &l)
}//列印鍊錶
void
list_print
(linklist l)
}//靜態鍊錶
typedef
struct
list1, linklist1[
100]
;int
main()
資料結構 線性表相關
1.佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 2.棧 stack 在電腦科學中是限定僅在棧頂進行插入或刪除操作的線性表。3.鍊錶 linked list 是一種常見的基礎資料結構,是一種線性表,是一種物理儲存單元上非連續 非順序的儲存結構。雙向鍊錶也叫雙鏈表 是...
資料結構 線性表相關知識
順序表和煉表的區別 線性表是以整體存在的,就像一根竹竿,一節接一節。所以它在儲存時也是整體儲存,也就是位址相連,乙個接乙個。而鍊錶相對來說就比較自由,儲存起來就不必相連,打亂順序也是有可能的。因為鍊錶的指標域會指明下乙個元素的儲存單元,這樣就可以一級一級的訪問。雙向迴圈列表理解 和志帥交流的結果,因...
線性表相關計算
已知乙個線性表 38,25,74,63,52,48 假定採用雜湊函式h key key 7 計算散 列位址,並雜湊儲存在雜湊表a 0.6 中,若採用線性探測方法解決衝突,則在該雜湊表上 進行等概率成功查詢的平均查詢長度為 我們首先必須要知道在建立這個雜湊表時,每個資料儲存時進行了幾次雜湊。這樣就知道...