C語言 雙向鍊錶的增刪改查

2021-09-10 16:43:31 字數 2056 閱讀 2755

//主題:雙向鍊錶

//功能:分別實煉表的插入、刪除、查詢操作

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