zoukankan      html  css  js  c++  java
  • Caesar

    要求实现用户输入一个数改变26个字母的排列顺序

    例如输入3:

    DEFGHIJKLMNOPQRSTUVWXYZABC

    输入-3:

    XYZABCDEFGHIJKLMNOPQRSTUVW

    使用循环链表

    代码如下:

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 #define OK 1
     5 #define ERROR 0
     6 
     7 typedef int status;
     8 typedef char ElemType;
     9 
    10 typedef struct DualNode
    11 {
    12     ElemType data;
    13     struct DualNode *prior;
    14     struct DualNode *next;
    15 }DualNode,*DuLinkList;
    16 
    17 status InitList(DuLinkList *L)
    18 {
    19     DualNode *p,*q;
    20     int i;
    21     *L=(DuLinkList)malloc(sizeof(DualNode));
    22 
    23     if(!(*L))
    24         return ERROR;
    25 
    26     (*L)->next=(*L)->prior=NULL;
    27     p=(*L);
    28 
    29     for(i=0;i<26;i++)
    30     {
    31         q=(DualNode*)malloc(sizeof(DualNode));
    32         if(!q)
    33             return ERROR;
    34 
    35         q->data='A'+i;
    36         q->prior=p;
    37         q->next=p->next;
    38         p->next=q;
    39 
    40         p=q;
    41     }
    42     p->next=(*L)->next;
    43     (*L)->next->prior=p;
    44 
    45     return OK;
    46 }
    47 
    48 void Caesar(DuLinkList *L,int i)
    49 {
    50     if(i>0)
    51     {
    52         do
    53         {
    54             (*L)=(*L)->next;
    55         }while(--i);
    56     }
    57     if(i<0)
    58     {
    59         (*L)=(*L)->next;
    60         do
    61         {
    62             (*L)=(*L)->prior;
    63         }while(i++);
    64     }
    65 }
    66 
    67 int main()
    68 {
    69     DuLinkList L;
    70     int i,n;
    71     printf("请输入一个整数:");
    72     scanf("%d",&n);
    73 
    74     InitList(&L);
    75     Caesar(&L,n);
    76 
    77     for(i=0;i<26;i++)
    78     {
    79         L=L->next;
    80         printf("%c",L->data);
    81     }
    82     printf("
    ");
    83 
    84     return 0;
    85 
    86 }
  • 相关阅读:
    https://blog.csdn.net/nameofcsdn/article/details/53164652
    洛谷
    模板
    模板
    Gym 101911E "Painting the Fence"(线段树区间更新+双端队列)
    Gym 101911F “Tickets”
    图论:最小瓶颈生成树
    图论:次小生成树
    图论:费用流-SPFA+EK
    图论:Dinic算法
  • 原文地址:https://www.cnblogs.com/52Cassie/p/4817592.html
Copyright © 2011-2022 走看看