線性表:零個或多個資料元素的有限序列。
在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。
線性表抽象型別定義:
adt 線性表(list)
data:
operation:
initlist(*l) //初始化線性表
listempty(l) //線性表為空返回true,否則返回false
clearlist(*l) //清空線性表
getelem(l,i,*e)//獲得線性表l在i中的位置元素,並通過e返回。
locateelem(l,e)//查詢表中與e相等的,存在返回true,否則返回false
listinsert(*l,i,e)//線性表l在i處插入e
listdelete(*l,i,*e)//刪除表l在i中的位置,並返回*e的值
listlength(l)//返回線性表l的個數。
endadt
實現a與b的並集,就是把b中不在a中的部分插入a中。
//將線性表lb中不在la中的資料全部插入到la中
void union(list *la,list lb)
}
#define maxsize 20 //儲存空間初始化分配量
typedef int elemtype; //elemtype型別根據情況而定,
typedef struct
sqlist;
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
//status是函式的型別,其值是函式結構狀態**,順序線性表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)
l->data[i - 1] = e;
l->length++;
return ok;
}//刪除節點
status listdelete(sqlist *l,int i,elemtype *e)
}l->length--;
return ok;
}//平均時間複雜度為o(n),最好時間複雜度為o(n),最壞時間複雜度為o(1)
平均時間複雜度為o(n),最好時間複雜度為o(n),最壞時間複雜度為o(1)。
線性表的順序儲存結構優點:
無需為表中的元素之間的邏輯關係增加額外的儲存空間
可以快速的訪問表中的任一位置元素
線性表的順序儲存結構缺點:
插入和刪除需要移動大量的元素
當線性表的長度變化較大時難以確定儲存空間的容量。
造成儲存空間的「碎片」
資料結構之線性表 1
線性表一般分為順序表和煉表,本篇是對順序表的回顧,以c 建立簡單學生健康管理系統為例。順序表是線性表基於陣列的儲存表示。其定義是 將線性表中的所有項,根據其邏輯順序 有序或無序皆可 依次儲存到一片連續的空間裡面,空間的開始位置會被指定好 一般實際起始位置在執行時分配 1.順序表節點的結構體定義 st...
資料結構之線性表(1)
部分可以先看一下不用理解,也可以忽略主要對概念的理解,只有把概念理解好了,才能知道題目怎麼去解 線性表是n個資料特性相同的元素的組成有限序列,是其他資料結構的基礎 線性表的邏輯結構無疑就是線性結構線性結構有很多如後面要學的棧,佇列,串,陣列 都是線性結構,而線性表是最基本的線性結構 知道邏輯結構之後...
1 資料結構之線性表
線性表是最常用且最簡單的一種資料結構,簡言之,乙個線性表是n個資料元素的有限序列。1 線性表長度 線性表中元素的個數n n 0 定義為線性表的長度 2 空表 線性表長度 0 1 插入 2 追加 特殊形式的插入 3 刪除 標號 看作陣列名,但不是陣列 編號 pos 追加 特殊形式的插入 源 1 1 線...