通常,線性表可以有順序儲存和鏈式儲存兩種儲存方式,今天先寫出順序儲存方式,下次會給出鏈式儲存方式。
順序儲存是利用元素在計算機物理位置的相鄰關係來表示元素之間邏輯上的相鄰關係,只要確定了首位址,線性表中任意元素的位置都可以方便的計算出來,達到可以隨機訪問的效果,但是線性表的陣列需要連續的儲存空間,需要估計所需要資料的大小,如果資料太大,估計不當有時會造成空間的浪費,而且每次插入和刪除都要移動大量的資料。因此,順序儲存不適合大資料儲存。
以下為源**:
struct list
;typedef struct list* plist; //指向鍊錶的指標
plist create_list(int m) //建立包含鍊錶可容納最大元素的空鍊錶
else
return list;
}bool is_emptylist(plist list) //判斷是否空鍊錶
int find_element(int x,plist list) //查詢元素
return -1;
}void insert_element(int x,int q,plist list) //在特定位置插入元素
if(q < 0 || q > list->maxnum) //可插入的位置不存在
for(int i = list->n-1; i >= q; i--) //將q位置的元素都向後移乙個位置以便空出q位置
list->element[q] = x; //將元素插入q位置
list->n++; //將元素個數加1;
return ;
}void delete_element(int x,plist list) //刪除鍊錶元素
list->n--; //元素個數減1
return;
} }cout<
return;
}void add_element(plist list) //往煉表裡新增元素
}void show_list(plist list) //輸出鍊錶中的元素
cout<>m;
plist list = create_list(m); //建立容量為m的空鍊錶
add_element(list); //增加鍊錶元素
show_list(list);
int x;
cout
int pos = find_element(x,list);
if(pos == -1) //如果返回的結果為-1,則找不到元素
cout>q;
insert_element(value,q,list);
show_list(list); //輸出插入後的鍊錶
int element; //要刪除的元素
cout
delete_element(element,list);
show_list(list); //輸出刪除後的鍊錶
system("pause");
return 0;
}
順序表,鍊錶,棧,佇列 Java表示
不確認完全正確,主要看邏輯 package com.datastruct.list public class sequencelist 長度獲取 public intgetlength 是否為空 public boolean isempty else 是否已滿 public boolean isfu...
順序表示的線性表 順序表
順序表具有以下特徵,邏輯上相鄰的元素,在物理上也是相鄰的,只要確定了第乙個元素的起始位置,線性表上的任一元素都可以隨機訪問因此線性表的順序儲存結構是一種隨機訪問的儲存結構 儲存結構 include listsize 100 typedef struct datatype list listsize ...
關於順序表和煉表的區別總結
一.概念 通過一段連續的實體地址儲存資料元素的線性結構,通常用陣列進行儲存 二.時間複雜度 在尾插 尾刪時,時間複雜度為o 1 在中間或前面進行插入刪除時,時間複雜度為o n 三.底層空間 順序表的底層空間是連續的,相當於陣列儲存 四.順序表支援隨機訪問 五.順序表可能需要擴容 順序表在儲存元素的時...