單鏈表基本操作 2

2021-07-25 06:44:57 字數 4610 閱讀 5510

建立結構型別,在cs.c檔案中

typedef

struct nodelinklist;

在link.h寫出方法宣告

/*

模擬鍊錶資料

*/linklist *testlinklist();

在link.c中實現此方法

#include "link.h"

linklist *testlinklist();

return l;

}

使用的是尾插入方式插入資料

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

link.h 宣告方法

/*

列印鍊錶中的節點資料

*/void showlinklist(linklist *q);

link.c 實現方法

void showlinklist(linklist *q)else

p=p->next;

}printf("]\n");

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

列印結果:

list=[-1,1,2,3,4,5,6,7,8,9,10]
link.h 宣告

/*

查詢鍊錶中指定位置的元素是否存在--按號定位

*/linklist *locbn(linklist *q,int i);

link.c 實現

linklist *locbn(linklist *q,int i)

p=q;

//2.判斷當前計數j是否等於i,如果不等於,則表示還沒有找到要查詢的位置,並且當前p不能為null

while (j!=i&& p!=null)

return p;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv) else

}

列印結果:

定位->按號定位

sq in 8 node of data =8

link.h 宣告

/*

查詢鍊錶中指定位置的元素是否存在--按值定位

*/linklist *locbv(linklist *q,int x);

link.c 實現

linklist *locbv(linklist *q,int x)

return p;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv) else

}

列印結果:

定位->按值定位

sq 不存在此 80 值的節點

link.h 宣告方法

/*

求鍊錶長度

*/int lenll(linklist *q);

link.c 實現方法

int  lenll(linklist *q)

return len;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

列印結果:

求鍊錶長度

鍊錶長度=10

link.h 宣告方法

/*

向指定位置插入結點

*/linklist * insterbyposition(linklist *q,int position);

link.c 實現方法

linklist * insterbyposition(linklist *q,int position)elseelse

}return q;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

列印結果:

插入結點

list=[-1,1,2,3,4,5,6,7,8,9,10]

inster success

list=[-1,1,2,2,3,4,5,6,7,8,9,10]

link.h 宣告方法

/*

刪除指定位置的節點

*/linklist * delete(linklist *q,int index);

link.c 實現方法

linklist * delete(linklist *q,int index)else

return p;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

列印結果:

刪除某個結點

list=[-1,1,2,3,4,5,6,7,8,9,10]

locatio delete success!

list=[-1,1,2,3,4,6,7,8,9,10]

link.h 宣告方法

/*

合併a和b,將b合併到a鍊錶後面

*/linklist *conll(linklist *a,linklist *b);

link.c 實現方法

linklist *conll(linklist *a,linklist *b)

//2.如果a節點為null,那麼也不能拼接

if(a==null)

//3.查詢a鍊錶的終結點

while (a->next!=null)

//4.將b插入到conp的最後面

a->next=b->next;

//5.釋放b鍊錶

free(b);

printf("合併成功\n");

return conp;

}

在main.c中的main方法(int main(int argc, const char * argv) {})呼叫此方法,並且進行判斷

#include 

#include "link.h"

int main(int argc, const

char * argv)

列印結果:

合併鍊錶

list=[-1,1,2,3,4,5,6,7,8,9,10]

list=[-1,1,2,3,4,5,6,7,8,9,10]

合併成功

list=[-1,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10]

釋放某個物件的方法,使用free()方法,則要引入:

#include

這是對鍊錶的基本操作,大家有好的建議,請大家提出,互相學習和進步.

求鍊錶長度

插入刪除合併

單鏈表基本操作

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...