顺序表右移K位

来源:互联网 发布:英文论文格式 知乎 编辑:程序博客网 时间:2024/05/29 14:07

试设计一个算法,仅用一个辅助节点,实现将顺序表中的节点循环右移K位的运算。

#include<stdio.h>#define MAX 100typedef struct{int len;int data[MAX];}student;void move(student *q,int n){int temp,i;while(n--){temp=q->data[q->len-1]; for(i=q->len-2;i>=0;i--){q->data[i+1]=q->data[i];}q->data[0]=temp;}}int main(){student *p,a;int k,i;p=&a;printf("请输入数字的个数:\n");scanf("%d",&p->len);printf("请输入%d个数:\n",p->len);for(i=0;i<p->len;i++){scanf("%d",&p->data[i]);}printf("请输入要移动的位数:\n");scanf("%d",&k); move(p,k);for(i=0;i<p->len;i++){printf("%d ",p->data[i]);}return 0;}




0 0
原创粉丝点击