1.用常數1取代執行時間中的所有加法常數;
2.在修改後的執行次數函式中,只保留最高端項;
3.如果最高端項存在且不是1,則去除與這個項相乘的常數。
#define maxsize 20 //儲存空間初始分配量
typedef
int elemtype;
typedef
struct
sqlist;
1.儲存空間的起始位置:陣列data,它的儲存位置就是儲存空間的儲存位置。
2.線性表的最大儲存容量:陣列長度maxsize。
3.線性表的當前長度:length。
1.如果插入位置不合理,丟擲異常。
2.如果線性表長度大於等於陣列長度,則丟擲異常或動態增加向量。
3.從最後乙個元素開始向前遍歷到第i個位置,分別將它們都向後移動乙個位置。
4.將要插入的元素填入位置i處;
5.表長加一。
#define ok 1
#define error 0
typedef int status;
status listinsert(sqlist *l,int i,elemtype e)
1.如果刪除位置不合理,丟擲異常。
2.取出刪除元素。
3.從刪除元素位置開始遍歷到最後乙個元素位置,分別將它們都向前移動乙個位置。
4.表長減一。
status
listdelete(sqlist *l,int i,elemtype *e)
優點1.無需為表示表中元素之間的邏輯關係而增加額外的儲存空間。
2.可以快速地訪問表中任意位置的元素。
缺點
1.插入和刪除操作需要移動大量元素。
2.當線性表長度變化較大時,難以確定儲存空間的容量。
3.造成儲存空間的「碎片」。
typedef
struct node
*linklist;
頭指標1.頭指標是指鍊錶指向第乙個結點的指標,若煉表有頭結點,則是指向頭結點的指標。
2.頭指標有標識作用,所以常用頭指標冠以鍊錶的名字。
3.無論鍊錶是否為空,頭指標均不為空。頭指標是鍊錶的必要元素。
頭結點
1.頭結點是為了操作的統一和方便而設立的,放在第一元素節點之前,其資料域一般無意義(也可存放鍊錶的長度)。
2.有了頭結點,對在第一元素節點前插入節點和刪除第一節點,其操作與其他節點的操作就統一了。
3.頭結點不一定是鍊錶必須要素。
1.宣告乙個結點p指向第乙個結點,初始化j從1開始;
2.當j
status getelem(linklist l,int i,elemtype *e)
if(j ==i)
*e = p->
data;
else
return error;
}
單鏈表的插入標準語句s->next = p->next; p->next = s;
1.先構造乙個新節點,用s指向;
2.再找到鍊錶的第i-1個節點,用p指向;
3.然後修改指標,插入節點(p之後插入新節點s)。
linklist listinsert(linklist *l,int i,elemtype e)
p = findkth(i-
1,l);
if(p ==
null)
return error;
else
}
s = p->next; p->next = s->next;
1.先找到鍊錶的第i-1個節點,用p指向;
2.再用指標s指向要被刪除的節點(p的下乙個節點);
3.然後修改指標,刪除s所指節點;
4.最後釋放s所指節點的空間。
linklist delete(int i, list l)
p = findkth(i-
1,l);
if(p ==
null)
return
null;
else
if(p->next ==
null)
return
null;
else
}
1.順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。
2.單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。
查詢順序儲存結構:o(1)
單鏈表o(n)
插入和刪除
順序儲存結構需要平均移動表長一半的元素,時間為o(n)
單鏈表在找出某位置的指標後,插入和刪除時間僅為o(1)
空間效能
順序儲存結構需要預分配儲存空間,分大了,浪費,分小了容易發生上溢。
單鏈表不需要分配儲存空間,只要有就可以分,元素個數也不受限制。
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
資料結構 01 資料與資料結構
1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...