3、刪除
刪除某個(gè)結(jié)點(diǎn),其實(shí)就是插入某個(gè)結(jié)點(diǎn)的逆操作。還是對(duì)于雙向循環(huán)鏈表,要在連續(xù)的三個(gè)結(jié)點(diǎn)s,p,q中刪除p結(jié)點(diǎn),只需把s的右鏈域指針指向q,q的左鏈域指針指向s,并收回p結(jié)點(diǎn)就完成了。
下面就是一個(gè)應(yīng)用雙向循環(huán)鏈表刪除算法的例子:
#include
#include
#include
#define N 10
刪除某個(gè)結(jié)點(diǎn),其實(shí)就是插入某個(gè)結(jié)點(diǎn)的逆操作。還是對(duì)于雙向循環(huán)鏈表,要在連續(xù)的三個(gè)結(jié)點(diǎn)s,p,q中刪除p結(jié)點(diǎn),只需把s的右鏈域指針指向q,q的左鏈域指針指向s,并收回p結(jié)點(diǎn)就完成了。
下面就是一個(gè)應(yīng)用雙向循環(huán)鏈表刪除算法的例子:
#include
#include
#include
#define N 10
typedef struct node
{
char name[20];
struct node *llink,*rlink;
}stud;
stud * creat(int n)
{
stud *p,*h,*s;
int i;
if((h=(stud *)malloc(sizeof(stud)))==NULL)
{
printf(“不能分配內(nèi)存空間!”);
exit(0);
}
h->name[0]=’