一、數據結構sqlist和seqlist的區別
sqlist是函數的名稱,seqlist是一種類型,動態分配數組順序表的類型。
sqlist為靜態分配
#define MaxSize 50????????????? //數組的大小固定為50
typedef int ElemType;?????????? //把int重命名為ElemType,方便修改數據類型
typedef struct SqList?????????? //定義了一個結構體
{
??? ElemType data[MaxSize]; //數組的長度固定為MaxSize
??? int length;???????????? //數組的當前長度
}SqList;
seqlist為動態分配
#define InitSize 50?????????? //初始長度
typedef int ElemType;???????? //把int重命名為ElemType,方便修改數據類型
typedef struct SeqList??????? //定義了一個結構體
{
??? ElemType *data;?????? //指示動態分配數組的指針
??? int MaxSize, length;? //最大長度和當前長度
}SeqList;
這兩個數據結構都是線性表,線性表(linear list)是n個具有相同特性的數據元素的有限序列。 線性表是一種在實際中廣泛使用的數據結
構,常見的線性表:順序表、鏈表、棧、隊列、字符串…
線性表在邏輯上是線性結構,也就說是連續的一條直線。但是在物理結構上并不一定是連續的,線性表在物理上存儲時,通常以數組和鏈式結構的形式存儲。
延伸閱讀:
二、為什么要用SQList
SQList是順序鏈表,屬于鏈表類型,輕量級數據存儲,方便增、刪、改、查。
1.SQLite數據庫存儲是安卓系統提供的存儲方式之一
2.SQLite是專為嵌入式設備設計的一款輕量級數據庫
3.SQLite占用資源非常低,在嵌入式設備中,只需要幾百kb的內存
4.SQLite支持標準的SQL語句,遵循數據庫的ACID失誤
5.SQLite不需要安裝,不需要用戶名密碼就能使用
要用SQList的原因
1.SharedPreferences是以xml形式儲存數據的,只適合儲存基本類型的數據
2.文件儲存的內容在提取(解析)數據時,相對復雜
3.當數據量大、結構復雜時,如果使用SharedPreferences和文件儲存對數據的操作將變得非常復雜,容易出錯,效率低下,Android提供了SQLite數據存貯,幫助我們解決這些問題