線性結構:
特點: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 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...