首页 > 其他分享 >39-17

39-17

时间:2023-10-08 20:12:42浏览次数:32  
标签:pre node 39 LNode 17 next LinkList printf

设计一个算法用于判断带头结点的循环双链表是否对称

循环双链表!!

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

typedef struct node{
    int data;
    struct node *pre,*next;
}LNode,*LinkList;

void CreateList(LinkList &L)
{
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    L->pre=NULL;
    LNode *p=L;
    LNode *r;
    int x;
    scanf("%d",&x);
    while(x!=999)
    {
        LNode *node=(LNode*)malloc(sizeof(LNode));
        node->data=x;
        node->next=NULL;
        node->pre=p;
        p->next=node;
        p=node;
        scanf("%d",&x);
    }
    L->pre=p;                    //只需要将L->pre指向最后一个结点就可以了 
}

void displayList(LinkList L)
{
    LNode *p=L->next,*r=L->pre;
    while(p)
    {
        printf("%d  ",p->data);
        r=p;
        p=p->next;
    }
    printf("\n");
    
    while(r!=L)        //判断pre指针是否正确         //当r->L时,遍历完成 
    {
        printf("%d  ",r->data);
        r=r->pre; 
    }
}

void Judge(LinkList L)
{
    LNode *p=L->next,*r=L->pre;
    while(p->next!=r&&p->next!=r->pre)        //指针界限问题,好好分析 
    {
        if(p->data!=r->data)
        {
            printf("No");
            return; 
        }
        else
        {
            p=p->next;
            r=r->pre;
        }
    }
    printf("Yes");
} 

int main()
{
    LinkList L;
    CreateList(L);
    displayList(L);
    printf("\n");
    Judge(L);
    return 0;    
} 

 

标签:pre,node,39,LNode,17,next,LinkList,printf
From: https://www.cnblogs.com/simpleset/p/17750030.html

相关文章

  • 新移科技发布基于联发科MT8390(Genio 700)平台的物联网AI核心板
    新移科技研发的XY8390物联网AI核心板是一款高度集成、功能强大的平台,该核心板专为各种人工智能(AI)和物联网(IoT)用例而设计。处理器采用了Arm®DynamIQ™技术,结合了高性能Cortex-A78内核和高能效Cortex-A55内核,并配备了ArmNeon™引擎。拥有AI加速器(AIA)的单核AI处......
  • npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\Administr
     C:\Users\Administrator>npminstallaxiosnpmWARNsaveErrorENOENT:nosuchfileordirectory,open'C:\Users\Administrator\package.json'npmnoticecreatedalockfileaspackage-lock.json.Youshouldcommitthisfile.npmWARNenoentE......
  • auto_sklearn autosklearn AttributeError: 'NoneType' object has no attribute 'in
      Traceback(mostrecentcalllast): File"/home/software/anaconda3/envs/bert_env/lib/python3.7/site-packages/autosklearn/automl.py",line634,infit   self._logger=self._get_logger(dataset_name) File"/home/software/anaconda3/envs/b......
  • Could not resolve all dependencies for configuration ':testCompileClasspath'. Us
    Gradleinit.gradle文件参数错误导致的Gradle加载失败 1allprojects{2repositories{3mavenLocal()4maven{name"Alibaba";url"https://maven.aliyun.com/repository/public"}//将http改为https5maven{name&......
  • mysqldump 导出来的文件,使用 source还原时报错“ASCII '\0' appeared in the stateme
    导出语句:mysqldump-uroot-pword--databasesdb1--tablestable1>./sqldumps/archive-table1-`date+"%Y%m%d_%H%M%S"`.sql导出后,使用source还原报错:ASCII'\0'appearedinthestatement,butthisisnotallowedunlessoption我开始以为是我导出的编码格式有问题,......
  • Python入门示例系列17 输入与输出( 格式化输出 )
    Python入门示例系列17输入与输出 读取键盘输入(input)Python提供了input()内置函数从标准输入(键盘)读入一行文本,默认的标准输入是键盘。返回结果是字符串。>>>astr=input("请输入:");##input('提示的内容')请输入:123>>>print(astr)123 如果从键盘输入两个数字,并求这......
  • P6346 [CCO2017] 专业网络 & CF1251E1 Voting(Easy Version)
    analysis这个题目我们可以考虑用贪心来做。我们不难看出来,这个题目是要让我们推出这么个结论:花小钱,办大人。整体贪心的思路就出来了,然后就是实现部分。因为我们认识的人随便是谁都可以。所以我们如果要买肯定是买最便宜的。这个性质可以用小根堆来维护。同时我们还可以维护我......
  • 学期2023-2024-1 20231417 《计算机基础与程序设计》第二周学习总结
    计算机科学概论第一章1.计算系统分为:软件,硬件,数据2.计算系统的层次是抽象c语言程序设计1.生如了解了什么是编程,为什么要学习编程以及怎么学习学习进度条 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长目标5000行30篇400小时 第一周 1/1......
  • 学期2023-2024-1 20231417 《计算机基础与程序设计》第二周学习总结
    学期2023-2024-120231417《计算机基础与程序设计》第二周学习总结教材学习内容总结《计算机科学概论》第一章:1.计算系统的分层以及计算系统的核心板块:硬件、软件、数据。2.抽象是一种思考问题的方式删除或隐藏了复杂的细节,保留实现目标所必须的信息3.计算机的四代硬件简史,......
  • ubuntu下mysql有表却提示table doesn't exist
    linux里面的mysql是区分大小写的,windows下的mysql不区分。在mysql的安装目录里面找到mysqld.cnf文件,在[mysqld]的下面(可以看到还有别的配置信息)添加  lower_case_table_names=1  就行了。我的这个配置文件的目录是/etc/mysql/mysql.conf.d文件夹下。......