小甲鱼视频的双循环链表,怎么也编译不过去,去大神看看
#include <stdio.h>#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef char ElemType;
typedef int Status;
typedef struct DualDode
{
ElemType data;
struct DualNode *prior;
struct DualNode *next;
}DualNode,*DuLinkList;
Status InitList(DuLinkList* L)//½¨Á¢Ë«Ñ »·Á´±í
{
DualNode *p=NULL, *q;
int i;
*L=(DuLinkList)malloc(sizeof(DualNode));
if(!(*L))
{
return ERROR;
}
(*L)=NULL;
(*L)->next=(*L)->prior=NULL;
p=(*L);
for(i=0;i<26;i++)
{
q=(DualNode *)malloc(sizeof(DualNode));
if(!q)
{
return ERROR;
}
q->data = 'A'+i;//ACII
q->prior= p->next;
q->next = NULL;
p->next=q;
p=q;
}
p->next=(*L);
(*L)->prior->next= p->next;
return OK;
}
void Caesar(DuLinkList* L,int i)//ÅÅÐò
{
if(i>0)
{
do
{
(*L)=(*L)->next;
}while(--i);
}
if(i<0)
do
{
(*L)=(*L)->next;
}while(++i);
}
int main()
{
DuLinkList L=NULL;
int i,n;
InitList(&L);
printf("ÇëÊäÈëÒ»¸öÊý£º");
scanf("%d",&n);
printf("/n");
Caesar(&L,n);
for(i=0;i<26;i++)
{
L=L->next;
printf("%c",L->data);
}
return 0;
}
(*L)->prior->next= p->next;这个怎么就不兼容了,用C-FREE,VC++和VS都说不兼容,百思不得其解
你这个是因为
typedef struct DualNode
{
ElemType data;
struct DualNode *prior;
struct DualNode *next;
}DualNode,*DuLinkList;
DualDode这个写错了
当然,你这个程序还有别的错误,自己去调试,自己去找
Status InitList(DuLinkList L)»·Á´±í
{
DualNode *p, *q;
*P=NULL;
int i;
DuLinklist 已经是指针类型的了,L前面不需要加*
DuLinkList InitList(DuLinkList L)//½¨Á¢Ë«Ñ »·Á´±í
{
DualNode *p, *q;
p=NULL;
int i;
L=(DuLinkList)malloc(sizeof(DualNode));
if(!L)
{
return ERROR;
}
L->next=L->prior=NULL;
p=L;
for(i=0;i<26;i++)
{
q=(DualNode *)malloc(sizeof(DualNode));
if(!q)
{
return ERROR;
}
q->data = 'A'+i;//ACII
q->next=NULL;
p->next=q;
q->prior=p;
p=q;
}
p->next=L;
L->prior= p;
return L;
}
搞定了哈哈
你的初始化有问题 撸过 友来友网 发表于 2013-11-10 12:30 static/image/common/back.gif
你这个是因为
typedef struct DualNode
{
谢谢,就是这个错误
页:
[1]