鱼C论坛

 找回密码
 立即注册
查看: 2943|回复: 0

[学习笔记] 数据结构和算法-线性表17

[复制链接]
发表于 2022-4-14 17:30:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
//要求实现输入一个数使得26个字母排列发生变化,正整数循环左移,负整数循环右移。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define OK 1
#define ERROR 0

typedef char ElemType;
typedef int Status;

typedef struct DualNode
{
        ElemType data;
        struct DualNode *prior;
        struct DualNode *next;
}DualNode,*DuLinklist;

Status InitList(DuLinklist *L)//初始化
{
        DualNode *p,*q;
        int i;
//        *L=(DuLinklist)malloc(sizeof(DualNode));
        *L=(DualNode*)malloc(sizeof(DualNode));
        if(!(*L))//判断链表是否创建失败
        {
                return ERROR;
        }

        (*L)->next=(*L)->prior=NULL;//头结点,为空
        p=(*L);
        for(i=0;i<26;i++)
        {
                q=(DualNode*)malloc(sizeof(DualNode));
                if(!q)
                {
                        return ERROR;
                }
                q->data='A'+i;
                q->prior=p;
                q->next=p->next;
                p->next=q;
                p=q;
        }
        p->next=(*L)->next;
        (*L)->next->prior=p;

        return OK;
}

void paixu(DuLinklist *L,int i)
{
        int j;
        if(i>0)
        {
                do
                {
                        (*L)=(*L)->next;
                }while(--i);//为什么do while,因为有头结点,空
        }
        if(i<0)
        {
                (*L)=(*L)->next->prior;//先将头指针指向第一个结点
                do
                {
                        (*L)=(*L)->prior;
                }while(++i);
        }
}

int main()
{
        DuLinklist L;
        int i,n;

        InitList(&L);

        printf("请输入与一个整数:");
        scanf("%d",&n);
        printf("\n");
       
        paixu(&L,n);

        for(i=0;i<26;i++)
        {
                L=L->next;
                printf("%c->",L->data);
        }
        printf("\n");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 10:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表