题目描述
题目:
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
输入
输入:
abcdef
输出
输出:
cdefab
样例输入
unbreakable
样例输出
breakableun
参考代码
#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
typedef struct qnode
{
ElemType data;
struct qnode *next;
}
QNode;
typedef struct
{
QNode *front;
QNode *rear;
}
LiQueue;
void enQueue(LiQueue *q,ElemType e)
{
QNode *s;
s=(QNode *)malloc(sizeof(QNode));
s->data=e;
s->next=NULL;
if(q->rear==NULL)
q->front=q->rear=s; else
{
q->rear->next=s;
q->rear=s;
}
}
void deQueue(LiQueue *q)
{
QNode *t;
t=q->front;
q->front=q->front->next;
free(t);
}
int main()
{
LiQueue *q;
ElemType c;
int n=2;
q=(LiQueue *)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
while((c=getchar())!=EOF)
enQueue(q,c);
while(n--)
{
c=q->front->data;
deQueue(q);
enQueue(q,c);
}
while(q->front!=q->rear)
{
printf("%c",q->front->data);
deQueue(q);
}
printf("%c",q->front->data);
return 0;
}
解析
暂无