//字符串移位
//#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);
}
}
字符串移位问题(循环双链表)
最新推荐文章于 2022-03-06 11:23:46 发布