鍊錶 調通 qazwsx

2021-10-13 02:33:12 字數 3584 閱讀 2968

初學者:"完全"已經調好了。

執行結果:

qazwsx$

全部元素為:qazwsx

一共有:

6個元素

查詢節點的內容,元素序號為:33

:z查詢節點的位置,內容為:zz:3

刪除節點,節點的位置:

3刪除內容為:z

剩餘元素為:qawsx

在i插入e:

3z全部元素為:qazwsx

排序後元素為:aqswxz

新鍊錶q:edc$

q合併p後:全部元素為:aqswxzedc

press any key to continue

#include

"stdio.h"

#include

"malloc.h"

#include

"string.h"

typedef

struct node

node,

*linklist;

/* linklist為結構指標型別*/

//建立乙個鍊錶

linklist createfromhead()

;//頭插

linklist createfromtail()

;//尾插/*將新增的字元追加到鍊錶的末尾*/

intlistlength

(linklist l)

;//l為帶頭結點的鍊錶求長度

//查詢

node *

get2

(linklist l,

int i)

;//按元素序號查詢

node *

locate2

(linklist l,

char key)

;//按元素值查詢

void

get1

(linklist l,

int i)

;//按元素序號查詢

void

locate1

(linklist l,

char key)

;//按元素值查詢

//更改

//刪除

void

dellist

(linklist l,

int i,

char

*e);

//刪除結點 序號

//插入

void

inslist

(linklist l,

int i,

char e)

;//插入結點

//合併

linklist merge

(linklist la, linklist lb)

;//排序

void

sore

(linklist head)

;//列印

void

printlist

(linklist l)

;//合併 有序

linklist mergelinklist

(linklist la, linklist lb)

;//兩個從小到大有序鍊錶合併成為有序鍊錶 lc

intmain()

//頭插

linklist createfromhead()

}return l;

}//尾插

linklist createfromtail()

/*將新增的字元追加到鍊錶的末尾*/

r->next=

null

;return l;

}//按元素序號查詢

void

get1

(linklist l,

int i)

// p->next是null

if(i==j)

else

//不滿足判斷條件,因此執行else部分

printf

("未找到");

}//按元素值查詢

void

locate1

(linklist l,

char key)

else}}

//按元素序號查詢

node *

get2

(linklist l,

int i)

// p->next是null,不滿足條件,因此不再執行迴圈體

if(i==j)

else

//不滿足判斷條件,因此執行else部分

return

null;}

//按元素值查詢

node *

locate2

(linklist l,

char key)

else

}return p;

}//刪除結點

void

dellist

(linklist l,

int i,

char

*e)if

(k!=i-1)

else

}//插入結點

void

inslist

(linklist l,

int i,

char e)

if(k!=i-1)

s=(node*

)malloc

(sizeof

(node));

/*為e申請乙個新的結點*/

s->data=e;

/*將待插入結點的值e賦給s的資料域*/

s->next=pre->next;

pre->next=s;

}//求長度

intlistlength

(linklist l)

/*l為帶頭結點的鍊錶*/

return j;

}//合併

linklist merge

(linklist la, linklist lb)

//兩個從小到大有序鍊錶合併成為有序鍊錶 lc

linklist mergelinklist

(linklist la, linklist lb)

else}if

(pa !=

null

) r->next=pa;

//return null;

else

// r->next=pb;

free

(lb)

;return

(lc);}

/*bcd$

新鍊錶q:aef$

合併後全部元素為:abcdef

bc$新鍊錶q:adef$

合併後全部元素為:abcdef

acdg$

新鍊錶q:be$

合併後全部元素為:abcdeg

*///排序

void

sore

(linklist head)

}//一輪迴圈結束 最後一項已經排好 end提前一項 (冒泡原理)

end = cur;}}

void

printlist

(linklist l)

}

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...

鍊錶 初識鍊錶

鍊錶 前言 小弟初學資料結構,有錯誤的地方望大家不吝賜教 認識鍊錶 列表相比陣列更具有優勢,鍊錶不同於資料和其他資料結構依靠位置來進行訪問或者其他操作,如陣列是依靠下表來運算元據。而鍊錶是通過關係來尋找或者運算元據。鍊錶的特性 插入 和 刪除 效率高,只需要變更指向的鏈結點即可。但是隨即訪問操作的效...

鍊錶(鍊錶建立)

先找到了一些與單鏈表相關的概念 2.指標域 ai元素儲存指向後繼元素儲存位置的資訊 3.結點 包含資料域和指標域 4.單鏈表 每個結點只包含乙個指標域的線性表 5.頭指標 要素 鍊錶中第乙個結點的儲存位置 線性表最後乙個結點指標為空 6.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...