python数组-双向循环链表
具体代码
#include<stdio.h>
#include <stdlib.h>
#include<malloc.h>
#define MAXSIZE 100
typedef struct Node{
char date;
struct Node* prior;
struct Node* next;
}Node;
typedef struct Node* LinkList;
void List_Init(LinkList *L,int n){
LinkList head,p;
*L=(LinkList)malloc(sizeof(Node));
head=*L;
for(int i=0;i<n;i++){
p=(LinkList)malloc(sizeof(Node));
p->date='A'+i;
head->next=p;
p->prior=head;
head=p;
}
p->next=(*L)->next;
(*L)->next->prior=p;
}
void List_Print(LinkList *L){
LinkList p;
p=(*L)->next;
do{
printf("%c",p->date);
p=p->next;
}while(p!=(*L)->next);
printf("\n");
}
void changeprint(LinkList *L,int n){
LinkList p;
p=(*L)->next;
if(n==0){
List_Print(L);
}else if(n>0){
for(int j=0;j<n;j++){
p=p->next;
}
for(int i=0;i<26;i++){
printf("%c",p->date);
p=p->next;
}
}else if(n<0){
for(int j=0;j<-n;j++){
p=p->prior;
}
for(int i=0;i<26;i++){
printf("%c",p->date);
p=p->next;
}
}
}
int main(){
LinkList L,p;
int n;
List_Init(&L,26);
printf("请输入:");
scanf("%d",&n);
changeprint(&L,n);
}