North China Electric Power University 6) Delete link(Head,i):删除单链表的第i个结点。 3 Head⌒ A B Procedure Delete_link(Var Head; Integer); Begin p:=Find Link(Head, i-1) if (p< >Nil)and (pf. next< >Nil) then[q:=p↑.next;p↑.next:=q; dispose (g else error(without); End;
North China Electric Power University 6)Delete_Link (Head,i):删除单链表的第i个结点。 Procedure Delete_Link(Var Head;i:Integer); Begin p:=Find_Link(Head,i-1); if (p< >Nil) and (p↑.next< >Nil) then [ q:=p↑.next; p↑.next:=q; dispose(q); ] else Error(‘Without’); End; A B C D ^ i=3 Head p
North China Electric Power University 7) Create Link(Head:建立一个单链表。 Procedure Create Link 1(Var Head: Link list) Begin Init Link( head) Read(x; i:=1; while(x<>“)Do IInsert Link(head, x, i) i: =i+1 Read(x); End:
North China Electric Power University 7)Create_Link (Head):建立一个单链表。 Procedure Create_Link_1(Var Head:Link_list); Begin Init_Link(Head); Read(x);i:=1; while (x< > ‘*’ ) Do [ Insert_Link(head,x,i); i:=i+1; Read(x); ] End;
North China Electric Power University Procedure Create Link 2(Var Head: Link list) Beg Init Link(Head); p: =Head; Read(x); while(x<>“*)Do I new(q; qt.data: =X;pf. next: -q;p: =q; Read(x); I p↑.next:=Nil End: Procedure Create link 3 (Var Head: Link list); Begin p:=Nil; Read (x); while(x<>4*3)do new(q);q↑.data:=x;q↑next:≡p;p:=q;Read(x);l new(Head); Headt. next:=p; End
North China Electric Power University Procedure Create_Link_2(Var Head:Link_list); Begin Init_Link(Head);p:=Head;Read(x); while (x< > ‘*’ ) Do [ new(q);q↑.data:=x;p↑.next:=q;p:=q;Read(x);] p↑.next:=Nil; End; Procedure Create_Link_3(Var Head:Link_list); Begin p:=Nil;Read(x); while (x< > ‘*’ ) Do [ new(q);q↑.data:=x;q↑.next:=p;p:=q;Read(x);] new(Head); Head↑.next:=p; End;
North China Electric Power University 线性表的链式存储结构的优缺点: 优点:1)存储空间动态分配,可以按需要使用; 2插入/删除结点操作时,只需要修改指针 不必移动数据元素 缺点:1)每个结点序加一指针域,存储密度降低; 2)非随机存储结构,査找定位操作需要从 头指针出发顺着链表扫描
North China Electric Power University 线性表的链式存储结构的优缺点: 优点:1)存储空间动态分配,可以按需要使用; 2)插入/删除结点操作时,只需要修改指针, 不必移动数据元素 缺点:1)每个结点序加一指针域,存储密度降低; 2)非随机存储结构,查找定位操作需要从 头指针出发顺着链表扫描
North China Electric Power University 单链表的应用示例: 例1.将一个单链表逆置 Procedure Invert Link I(VarHead: Link list); {不带头结点} Beg p: Head; Head: =Nil while(p <> Ni do s:=p;p:=p↑next;s↑.next:=lead;Head:=s; End: Procedure Invert Link 2(Var Head: Link list); {带头结点} Begin p:=Head↑next;h:=Ni; while(p<>Nil) do s:=p;p:=p↑.next;s↑.next:=h;h:=s; ihead↑.next:=h: End
North China Electric Power University 单链表的应用示例: 例1.将一个单链表逆置 Procedure Invert_Link_1(Var Head:Link_list); {不带头结点} Begin p:=Head;Head:=Nil; while (p < > Nil) Do [ s:=p; p:=p↑.next;s↑.next:=Head;Head:=s;] End; Procedure Invert_Link_2(Var Head:Link_list); {带头结点} Begin p:=Head↑.next;h:=Nil; while (p < > Nil) Do [s:=p; p:=p↑.next; s↑.next:=h;h:=s;] head↑.next:=h; End;