假設有一個回圈鏈表的長度大于1,且表中既無頭結點也無頭指標。已知p為指向鏈表某個結點的指標,試撰寫演算法在鏈表中洗掉指標p所指結點的前驅結點。
能運行,卡在輸出
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 100
typedef int ElemType;
struct node{
int data;
struct node*next;
}; typedef struct node NODE;
NODE*init()
{ NODE*p;
p=(NODE*)malloc(sizeof(NODE));
p->next=p;
return p;
} NODE*createlist()
{
NODE*p,*L;int x;
p=init();
printf("請輸入一組資料,以-1為結束標志");
scanf("%d",&x);
while(x!=-1)
{
L=(NODE*)malloc(sizeof(NODE));
L->data=https://bbs.csdn.net/topics/x; L->next=p->next; p->next=L;
scanf("%d",&x);
}
} NODE*delprev(NODE*p)
{ int n; NODE*q,*k,*l; q=p; printf("請輸入p指向的值:");
scanf("%d",&n);
while(q->next->data!=n)
{ k=q; q=q->next;
}
l=q->next;
k->next=l;
free(q);
return(l);
}
void print(NODE*L)
{
NODE*k;
k=L;
while(k->next!=NULL)
{
printf("%d",k->data);
k=k->next;
}
printf("%d",k->data);
}
int main()
{
NODE*L,*p;
p=createlist();
L=delprev(p);
print(L);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/108721.html
標籤:新手樂園
上一篇:求編碼大神
