零個或多個資料元素的有限序列。
線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。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。基礎理論決定乙個程式設計師思維的深度。介於此,決定認真學習資料結構,找到比較基礎易懂的大話資料結構來開始我的學習之旅。資料結構 相互之間存在一種或多種特定關係的資料...