《大話資料結構》讀書筆記(三)

2021-08-02 11:33:54 字數 1881 閱讀 8111

零個或多個資料元素的有限序列。

線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。

c語言描述線性表的順序儲存結構
/**

* 描述順序儲存結構需要三個屬性:

* 儲存空間的起始位置:陣列data,它的儲存位置就是儲存空間的儲存位置。

* 線性表的最大儲存容量:陣列長度maxsize

* 線性表的當前長度: length

*/#define maxsize 20 /*儲存空間初始分配量*/

typedef

int elemtype; /*elemtype型別根據實際情況而定,這裡假設為int*/

typedef

struct sqlist;

資料長度與線性表長度區別
在任何時刻,線性表的長度應該小於等於陣列的長度。

#include 

#define ok 1

#define error 0

#define true 1

#define false 0

#define maxsize 20 /*儲存空間初始分配量*/

typedef

int elemtype; /*elemtype型別根據實際情況而定,這裡假設為int*/

typedef

struct sqlist;

typedef

int status;

/*** 獲得元素操作

* status是函式的原型,其值是函式結果狀態**,如ok等

* 初始條件:順序線性表l已存在

* 操作結果:用e返回l中第i個資料元素的值

*/status getelem(sqlist l, int i, elemtype *e)

*e = l.data[i - 1];

return ok;

}/**

* 插入操作

*/status listinsert(sqlist *l, int i, elemtype e)

//i不在範圍中

if (i < 1 || i > l->length + 1)

if (i <= l->length)

}l->data[i - 1] = e;

l->length++;

return ok;

}/**

* 刪除操作

*/status listdelete(sqlist *l, int i, elemtype *e)

//刪除位置不正確

if (i < 1 || i > l->length)

*e = l->data[i - 1];

if (i < l->length)

}l->length--;

return ok;

}int main(void)

, 4 };

int key = 3;

elemtype result;

/*測試getelem*/

getelem(list,key, &result);

printf("獲得元素操作結果%d\n", result);

/*測試listinsert*/

elemtype value = 123;

listinsert(&list,key,value);

printf("獲得元素操作結果%d\n", list.data[--key]);

/*測試listdelete*/

listdelete(&list,key,&result);

}

優點 缺點

大話資料結構讀書筆記

第一章 資料結構的定義 資料就夠是相互直接存在一種或多種特定關係的資料元素的集合 邏輯結構 集合結構 線性結構 樹形結構 圖形結構 第二章 演算法 1 演算法的特性 輸入 輸出 有窮性 確定性和可行性 2 演算法事假複雜度定義 在進行演算法分析時,語句總的次數t n 第三章1 線性表 定義 零個或多...

大話資料結構 讀書筆記

是相互之間存在一種或多種特定關係的資料元素的集合。說白了就是資料的集合 但是集合裡面的資料之間存在特地的關係 這翻譯得好像沒說一樣 是指資料元素之間的相互關係 指資料的邏輯結構在計算機儲存形式 鏈式儲存結構 是把資料元素存放在任意的儲存單元 這組儲存單元可以是連續的 也可以是不連續的 資料型別指的是...

讀書筆記 大話資料結構 1

對於電腦科學,資料結構的重要性不言而喻。它對於乙個程式設計師的功力的提高起著關鍵的作用。勿在浮沙築高台,想要成為一名合格的hacker。基礎理論決定乙個程式設計師思維的深度。介於此,決定認真學習資料結構,找到比較基礎易懂的大話資料結構來開始我的學習之旅。資料結構 相互之間存在一種或多種特定關係的資料...