iceage 发表于 2013-11-10 10:59:53

小甲鱼视频的双循环链表,怎么也编译不过去,去大神看看

#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)//&frac12;¨&Aacute;&cent;&Euml;&laquo;&Ntilde; &raquo;·&Aacute;&acute;±í
{
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)//&Aring;&Aring;&ETH;ò
{
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("&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Ograve;&raquo;&cedil;&ouml;&Ecirc;&yacute;&pound;&ordm;");
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都说不兼容,百思不得其解

友来友网 发表于 2013-11-10 10:59:54

你这个是因为
typedef struct DualNode
{
ElemType data;
struct DualNode *prior;
struct DualNode *next;
}DualNode,*DuLinkList;

DualDode这个写错了
当然,你这个程序还有别的错误,自己去调试,自己去找

严肃,走神中 发表于 2013-11-10 13:23:17

Status InitList(DuLinkList L)&raquo;·&Aacute;&acute;±í
{
DualNode *p, *q;
*P=NULL;
int i;

DuLinklist 已经是指针类型的了,L前面不需要加*

严肃,走神中 发表于 2013-11-10 14:24:20

DuLinkList InitList(DuLinkList L)//&frac12;¨&Aacute;&cent;&Euml;&laquo;&Ntilde; &raquo;·&Aacute;&acute;±í
{
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;
}

搞定了哈哈
你的初始化有问题

莫名C 发表于 2013-11-10 19:39:22

撸过               

iceage 发表于 2013-11-11 22:41:53

友来友网 发表于 2013-11-10 12:30 static/image/common/back.gif
你这个是因为
typedef struct DualNode
{


谢谢,就是这个错误
页: [1]
查看完整版本: 小甲鱼视频的双循环链表,怎么也编译不过去,去大神看看