阿濤,你要認真對待每一件事,你要瀟灑,你要做自己!
前面複習了單向鍊錶和迴圈鍊錶的操作,寫得比較亂,現在寫個比較規整的雙向鍊錶的的各項操作。
先上個截圖:
全部**如下:
#include
#include
#define len sizeof(struct doublelinklist)
typedef struct doublelinklist
db,*pdb;
void printinfo();
void creatdoublelinklist(int headnum);
void creatnewdot(pdb *newdot,int num);
pdb searchdot(int num);
void insertdot(pdb dot,int afternum);
void deletedot(int num);
void changedot(int originnum,int changenum);
void deleteall();
pdb head=null;
pdb newdot=null;
int inputnum=0;
int channum=0;
int order=-1;
int main()
}while(order!=7);
return 0;
}void printinfo()
pdb pout=head;
printf("鍊錶值為:\n");
dowhile(pout->next!=head->next);
}void creatdoublelinklist(int headnum)
void creatnewdot(pdb *newdot,int number)
pdb searchdot(int num)
else if(head->num==num)
else
if(search==head)
return null;
else
return search;
}return null;
}void insertdot(pdb dot,int afternum)
printf("資料插入成功!\n");
}void deletedot(int num)
deldot->previous->next=deldot->next;
deldot->next->previous=deldot->previous;
free(deldot);
printf("節點刪除成功!\n");
}void changedot(int originnum,int changenum)
else
}
void deleteall()
pdb del=null;
while(head->next!=head)
if(head!=null)
free(head);
head=null;
printf("鍊錶釋放完畢!");
}
雙向鍊錶的增刪改查
package com.mjw.linkedlist 1.遍歷 和單鏈表的思路一致 2.新增 先找到雙向鍊錶的最後 temp.next new heronode newheronode.pre temp 3.修改也是和單鏈表的思路一致 4.刪除 因為是雙向鍊錶,可以自我刪除,直接找到要刪除的結點,比...
雙向鍊錶的增刪改查
雙向鍊錶增刪改查 單向鍊錶查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢 單向鍊錶不能自我刪除,需要輔助節點,而雙向鍊錶可以自我刪除,public class doublelinkedlistdemo class doublelinkedlist 遍歷雙向鍊錶的方法,顯示鍊錶 遍歷 pub...
mysql增刪改查鍊錶 鍊錶的增刪改查
include include 先定義鍊錶裡面的元素。typedef struct nodemynode 定義整個鍊錶。typedef struct linkmylink int isempty to mylink mylink mylink 判斷鍊錶是否為空。int push to mylinki...