初學者:"完全"已經調好了。
執行結果:
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.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...