//主題:雙向鍊錶
//功能:分別實煉表的插入、刪除、查詢操作
#define _crt_secure_no_warnings
#include
#include
typedef
struct student
stu,
*pstu;
//列印
void
list_print
(pstu phead, pstu ptail)
printf
("\n");
printf
("逆序列印:\n");
pcur = ptail;
while
(pcur !=
null
)printf
("\n");
}//增:頭插法(插在左邊)
void
list_insert_head
(pstu *pphead, pstu *pptail,
int i)
else
//如果鍊錶非空
}//增:尾插法
void
list_insert_tail
(pstu *pphead, pstu *pptail,
int i)
else
}//增:有序插入
void
list_insert_sort
(pstu *pphead, pstu *pptail,
int i)
else
else
//向後遍歷
pbefore = pcur;
//小弟記住大哥的腳印
pcur = pcur->pnext;
//大哥先走一步 }if
(null
== pcur)
//如果到最後,尾插}}
}//刪除
void
list_delete
(pstu *pphead, pstu *pptail,
int i)
else
if(i ==
(*pphead)
->num)
//如果要刪除第乙個節點(此時可能僅剩乙個節點)
}else
//如果不等於第乙個節點
else}if
(null
== pcur)
//如果到最後}}
//修改
void
list_modify
(pstu *pphead, pstu *pptail,
int i,
float score)
else
else}if
(null
== pcur)
//如果到最後}}
//查詢
void
list_find
(pstu *pphead, pstu *pptail,
int i)
else
else}if
(null
== pcur)
//如果到最後}}
intmain()
list_print
(phead, ptail)
;//刪
printf
("請輸入你要刪除的數字:");
while
(scanf
("%d"
,&i)
!=eof
)//改
printf
("請輸入你要修改的序號和數字:");
while
(scanf
("%d %f"
,&i,
&score)
!=eof
)//查
printf
("請輸入你要查詢的序號:");
while
(scanf
("%d"
,&i)
!=eof
)system
("pause");
}
雙向鍊錶的增刪改查
package com.mjw.linkedlist 1.遍歷 和單鏈表的思路一致 2.新增 先找到雙向鍊錶的最後 temp.next new heronode newheronode.pre temp 3.修改也是和單鏈表的思路一致 4.刪除 因為是雙向鍊錶,可以自我刪除,直接找到要刪除的結點,比...
雙向鍊錶的增刪改查
雙向鍊錶增刪改查 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢 單向鍊錶不能自我刪除,需要輔助節點,而雙向鍊錶可以自我刪除,public class doublelinkedlistdemo class doublelinkedlist 遍歷雙向鍊錶的方法,顯示鍊錶 遍歷 pub...
雙向鍊錶的增刪改查操作
阿濤,你要認真對待每一件事,你要瀟灑,你要做自己!前面複習了單向鍊錶和迴圈鍊錶的操作,寫得比較亂,現在寫個比較規整的雙向鍊錶的的各項操作。先上個截圖 全部 如下 include include define len sizeof struct doublelinklist typedef struc...