資料結構雜談

2021-08-04 05:13:04 字數 2657 閱讀 7536

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 資料物件是性質相同的資料元素的...