線性表-順序表C語言實現
什麼是線性表
線性表,全名為線性儲存結構。使用線性表儲存結構的方式可以理解,即“把所有的資料都用一根線串起來在儲存到物理空間中”。
順序儲存結構和鏈式儲存結構
- 將資料依次儲存在連續的整塊物理空間中,這種儲存結構稱為順序儲存結構,(簡稱順序表);
- 資料分散的儲存在物理空間中,通過一根線儲存他們之間的邏輯關係,這種儲存結構稱為鏈式儲存結構;(簡稱連結串列);
前驅和後繼
資料結構中,一組資料中的每個個體被稱為“資料元素”(簡稱元素)。
- 某一元素的左側相鄰的元素稱為“直接前驅”,位於此元素左側所有的元素都稱為“前驅元素”
- 某一元素的右側相鄰的元素稱為“直接後繼”,位於此元素右側所有的元素都稱為“後繼元素”
順序表(順序儲存結構)及初始化詳解
順序表儲存資料時,會提前申請一整塊足夠大小的物理空間,然後將資料依次儲存起來,儲存時做到資料元素之間不留一絲縫隙。
順序表的初始化
順序表儲存資料之前,除了申請足夠大的儲存空間之外,還要記錄一下資料
- 順序表申請的儲存容量
- 順序表的長度,也就是表中儲存元素的個數
提示:正常狀態下,順序表申請的儲存容量要大於順序表的長度。
順序表C語言實現程式碼:
//順序表自定義
typedef struct Table{
int * head; //宣告瞭一個名為head的長度不確定的陣列,也叫動態陣列
int length; //記錄當前順序表的長度
int size; //記錄順序表分配的儲存容量
}table;
/*順序表初始化
1、給Head動態資料申請足夠大小的物理空間
2、給size、length賦初值
*/
#define Size 5 //對Size進行巨集定義,表示順序表申請大小
table initTable()
{
table t;
t.head=(int*)malloc(Size*sizeof(int)); //構造一個空順序表,動態申請儲存空間
if(!t.head) //出國申請失敗,提示並退出程式
{
printf("初始化失敗!\n");
exit(0);
}
t.length=0; //空表的長度為0
t.size=Size; //空表的初始化儲存空間大小為Size
return t;
}
/*
通過在主函式中呼叫 initTable 語句,就可以成功建立一個空的順序表,
與此同時我們還可以試著向順序表中新增一些元素,C 語言實現程式碼如下:
*/
#include<stdio.h>
#include<stdlib.h>
#define Size 5
typedef struct Table{
int * head; //宣告瞭一個名為head的長度不確定的陣列,也叫動態陣列
int length; //記錄當前順序表的長度
int size; //記錄順序表分配的儲存容量
}table;
table initTable()
{
table t;
t.head=(int*)malloc(Size*sizeof(int)); //構造一個空順序表,動態申請儲存空間
if(!t.head) //出國申請失敗,提示並退出程式
{
printf("初始化失敗!\n");
exit(0);
}
t.length=0; //空表的長度為0
t.size=Size; //空表的初始化儲存空間大小為Size
return t;
}
void diaplayTable(table t)
{
for(int i=0;i<t.length;i++)
{
printf("%d ",t.head[i]);
}
printf("\n");
}
int main()
{
table t=initTable();
for(int i=0;i<t.size;i++)
{
t.head[i]=i;
t.length++;
}
printf("順序表中儲存的元素分別是:\n");
displayTable(t);
return 0;
}
相關文章
- 順序表的基本方法實現C語言版C語言
- 線性表的使用——順序實現
- 資料結構c語言實現順序表基本操作資料結構C語言
- 線性表的順序儲存C++程式碼實現C++
- 資料結構 - 線性表 - 順序表資料結構
- c運算子優先順序表-最全c語言運算子優先順序和結合性對照表C語言
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- go語言使用切片實現線性表Go
- 線性表的順序儲存C++程式碼C++
- 順序表的實現
- Java實現順序表Java
- 考研資料結構-線性表-順序表資料結構
- DS順序表--類實現
- 線性表之順序儲存結構
- 資料結構與演算法 | 線性表 —— 順序表資料結構演算法
- 11 線性表的順序儲存結構
- 線性表的順序儲存-順序表,對“突然的自我”的否定,對自我的揚棄
- c語言資料結構,你可能還不知道的順序表C語言資料結構
- 順序表
- 順序表實現二分排序排序
- C語言運算子優先順序C語言
- C 語言運算子優先順序
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 線性表及其實現
- C++ 運算子優先順序表C++
- 資料結構 順序棧(c語言)資料結構C語言
- C語言資料結構(8)--棧 後進先出線性表C語言資料結構
- 實驗二:順序表的基本操作實現及其應用
- 第2章 順序表及其順序儲存
- 線性表1.0(陣列實現)陣列
- 順序表的學習
- 順序表的堆排序排序
- 理解C語言宣告的優先順序規則C語言
- 利用順序棧完成的作業題(C語言)C語言
- c語言順序棧常規插入刪除操作C語言
- 第二章-線性表-順序表(初始化、迴圈、插入、刪除、查詢、清空)