字符串移位问题(循环双链表)

    科技2022-08-25  103

    //字符串移位 //#include "dlinklist.cpp" #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef char ElemType ; typedef struct Node{ ElemType data; struct Node *pre; struct Node *next; }DLinkNode; void InitList(DLinkNode *&L){ L=(DLinkNode *)malloc(sizeof(DLinkNode)); DLinkNode *p=L; for(int i=0;i<26;i++) { DLinkNode *s=(DLinkNode *)malloc(sizeof(DLinkNode)); s->data='A'+i; s->next=p->next; // p->next->pre=s; 尾插法,尾节点后面没有后继节点,所以这里不需要写 s->pre=p; p->next=s; p=s; } p->next=L->next; L->next->pre=p; } //开始字符串的移位 void moveSpace(int space,DLinkNode *&L) { DLinkNode *q=L->next; while(space>0){ q=q->next; space--; } while(space<0){ q=q->pre; space++; } L->next=q; } int main(void){ DLinkNode *L; int n; printf("初始化循环双链表\n"); InitList(L); printf("输入数字:\n"); scanf("%d",&n); moveSpace(n,L); for(int i=0;i<26;i++) { L=L->next; printf("%c",L->data); } }
    Processed: 0.009, SQL: 9