資料結構 第二章 線性結構

2022-06-22 06:12:11 字數 2244 閱讀 9628

線性結構:

特點:1頭兒 只有沒有前驅只有後繼

2中間的 既有前驅也有後繼

3尾 沒有後繼只有前驅

4邏輯相鄰,物理也相鄰。

常用的:

線性表(順序表,鍊錶)棧佇列

儲存結構:

定義順序表——陣列

建表——查詢——增刪改查

單向鍊錶:

1.新建鍊錶

c語言結構體:

struct node

int data;

struct node *next;

struct node *p1,*p2,*p3;

p1 = new node;

p1->data = a1;

p2 = new node ;

p2->data = a2;

... 這樣寫太複雜,可以用佇列或者棧的迴圈來寫

2.鍊錶查詢

第一步:如果沒找到這個資料,p=p->next

while(p->data!=a3)

p=p->next

3.鍊錶插入

插入s結點:

第一步:指向a3前面結點。

第二步:先連後斷。

while(p->next->data!=a3)

p=p->next

s->next = p->next

p-next = s 

4.鍊錶的刪除

第一步:找到a3前面的結點p,

while(p->next->data!=a3)

p=p->next

q=p->next;

p->next=q->next;

5.鍊錶逆序

鍊錶逆序的迴圈演算法

設定prev=null,next這兩個指標,next為head->next ,讓head的next為prev,這時a就從鍊錶中脫離出來,然後prev,head,next 向前推進,

讓prev為head,head為next,

下一步

迴圈的終止條件是head指標為null。

自己蒙著眼睛寫乙個-。-

reverse( linknode *head)

return prev;

}鍊錶逆序的遞迴演算法

//遞迴呼叫

node * reverserecursion(node *head)

node *second = head->next;

head->next = null;

node *rest = reverserecursion(second);

second->next = head;

return rest;

}

雙向迴圈鍊錶的插入(先連後斷)

資料結構 第二章 線性表

線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...

資料結構 第二章 線性表

線性表 順序儲存 鏈式儲存 順序表單鍊錶 雙鏈表迴圈鍊錶 靜態鍊錶 陣列指標實現 借助陣列實現 定義 線性表是具有相同資料型別的n n 0 個資料元素的有限序列,其中n為表長,當n 0時該線性表是乙個空表。特點 1 個數有限 2 表中元素具有邏輯上的順序性。3 表中元素都是資料元素,每個元素都是單個...

資料結構 第二章 線性表

資料結構 第二章 線性表 模板 引數化的多型 引數化多型性 講程式所處理的物件型別引數化,使一段 可用於處理多種不同型別的物件 採用模板程式設計 提供 共享機制 邏輯功能相同,資料型別不同 定義格式 template 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...