|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef int status;
typedef char ElemType;
typedef struct DualNode
{
ElemType data;
struct DualNode*prior;
struct DualNode*next;
}DualNode,*Dulinklist;
status Initlist(Dulinklist*L)
{
DualNode *p,*q;
int i;
*L=(Dulinklist)malloc(sizeof(DualNode));
if(!(*L))
return ERROR;
(*L)->prior=(*L)->next=NULL;
p=(*L);
for(i=0;i<26;i++)
{
q=(DualNode *)malloc(sizeof(DualNode));
if(!q)
return ERROR;
q->data='A'+i;
q->prior=p;
q->next=p->next;
p->next=q;
p=q;
}
p->next=(*L)->next;
(*L)->next->prior=p;
return OK;
}
void caser(Dulinklist*L,int i)
{
if(i>0)
{
i=i+2;
while(--i)
{
(*L)=(*L)->next;
}
}
if(i<0)
{
i=i-1;
(*L)=(*L)->next;
while(++i)
{
(*L)=(*L)->prior;
}
}
}
int main()
{
Dulinklist L;
int i,n;
Initlist(&L);
printf("请输入一个整数:\n");
scanf("%d",&n);
caser(&L,n);
for(i=0;i<26;i++)
{
printf("%c ",L->data);
L=L->next;
}
printf("\n");
return 0;
}
|
|