當前位置:編程學習大全網 - 編程語言 - 鏈表編程教程

鏈表編程教程

/*線性表鏈表的操作:只提供核心語句*/

#包含“stdio.h”

#包含" stdlib.h "

#定義編號100

typedef int ElemType/*鏈表的存儲結構*/

typedef結構LNode{

元素類型數據;

struct LNode * next} LNode,* LinkList/*鏈表的基本操作*/* * * * * 1。初始化鏈表* * * * */

void InitList(LinkList *L)

{ * L =(LinkList)malloc(sizeof(LNode));

(* L)-& gt;next = NULL}/* * * * * 2.銷毀鏈表* * * * */

void DestroyList(鏈表*L)

{ LinkList p;

while(*L!=空)

{ p = * L;

* L =(* L)-& gt;接下來;

免費(p);}

}

/* * * * * * 10.插入元素E * * * * */

void ListInsert(LinkList *L,int n,element type e)

{鏈表p,q,new。int I;

q = * L;p =(* L)-& gt;接下來;I = 1;

而(p!= NULL & amp& amp我& ltn){ q = p;p = p-& gt;接下來;i++;}

new =(LinkList)malloc(sizeof(LNode));

新建-& gt;數據= e;

q->;next = new新建-& gt;next = p;}/* * * * * * 11.刪除鏈表中第n個位置的元素* * * * */

void ListDelete(LinkList *L,int n,ElemType *e)

{鏈表p,q;int I;

q = * L;p =(* L)-& gt;接下來;I = 1;

而(p!= NULL & amp& amp我& ltn){ q = p;p = p-& gt;接下來;i++;}

* e = p-& gt;數據;

q->;next = p-& gt;接下來;免費(p);}/* * * * * 12.遍歷鏈表並輸出* * * * */

void ListTraverse(鏈表L)

{ LinkList p;

printf(" \ n list:\ t ");

p = L-& gt;接下來;

而(p!=空)

{ printf("%d\t ",p-& gt;數據);

p = p-& gt;接下來;}

}/* * * * * * A (2)。然後建立壹個順序鏈表* * * * */

void CreateList2(LinkList *L,ElemType a[],int n)

{鏈接列表p,新;int I;

p = * L;

for(I = 0;我& ltn;i++)

{ new =(LinkList)malloc(sizeof(LNode));

新建-& gt;data = a[I];

p->;next = newp = p-& gt;接下來;}

p->;next = NULL

}

/*主函數*/

主()

{ LinkList LaElemType a[]={1,3,5,7,9},x;

InitList(& amp;la);//初始化鏈表

創建列表2(& amp;La,a,5);//建立壹個鏈表,用數組賦值。

list traverse(La);//遍歷鏈表

list insert(& amp;La,3,100);//在第三個位置插入100。

list traverse(La);//遍歷鏈表

list delete(& amp;洛杉磯,5和;x);//刪除第五元素,用x返回。

list traverse(La);//遍歷列表destroylist(&;la);//銷毀鏈表

}這是我們剛學的,保證簡潔準確。

  • 上一篇:我與書法結緣
  • 下一篇:用pascal編程
  • copyright 2024編程學習大全網