單鏈表與6個基本操作

2021-07-23 12:23:18 字數 1527 閱讀 6185

0、巨集定義與單鏈表結構體

#include

#include

#include

using

namespace

std;

#define error 1

#define ok 0

typedef

int elemtype;

typedef

int status;

typedef

struct lnodelnode; //單鏈表結點結構體

typedef lnode* linklist;//單鏈表結點指標

1、建立乙個單鏈表

//建立鍊錶,為乙個頭結點指標分配空間,要提前有乙個頭結點指標 

status initlist(linklist &l)//引數為指標的引用,使在子函式中分配的空間不會被釋放

l->next=null;

}

2、銷毀乙個單鏈表(只留乙個頭結點指標,頭結點空間釋放)

status

destroylist(linklist &l)

} return

ok;}

3、清空乙個單鏈表(保留頭結點,包括頭結點指標和頭結點空間)

status clearlist(linklist &l)//

} l->next=

null;

return ok;

}

4、插入乙個結點

//插入乙個結點,傳入頭結點指標,在第i個元素前插入乙個元素 

status insertlist(linklist &l,int i,elemtype e)

if(!p||j>i-

1)

linklist s;

s=(lnode*)malloc(sizeof(lnode));

s->

data

=e; s->next=p->next;

p->next=s;

return ok;

}

5、刪除乙個結點

//刪除乙個結點(刪除結點涉及三個位置的指標) 

//傳入頭結點指標,刪除鍊錶中第i個元素,並獲得該結點資料域

status listdelete(linklist &l,int i,elemtype &e)

if(!(p->next)||j>i-

1)

q=p->next;p->next=q->next;

e=q->

data;free(q);

return ok;

}

6、獲取第i個結點的資料

status getelem(linklist l,int i,elemtype &e)

if(p||j>i)

else

}

單鏈表基本操作

include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...

單鏈表基本操作

單鏈表的初始化,建立,插入,查詢,刪除。author wang yong date 2010.8.19 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist...

單鏈表基本操作

include using namespace std define namelenth 20 define ok 0 define error 1 typedef struct flagnode node 生成結點 inline node newnode 銷毀化煉表 void destroylin...