count记录的是单链表的总长

count1记录的是升序的结点的个数

count2记录的是降序的结点的个数

如果count1或者count2等于count,那么就说明该序列是升序或者降序的。

稍加改进可以在准确判断是升序还是降序还是无序

(个人认为链表中只有一个结点或者没有结点都是有序的)

#include <stdio.h>
#include <stdlib.h>
typedef struct link_node
{int info;struct link_node *next;
}N;N *init()
{return NULL;
}N *creat(N *head)
{N *p,*q;int x;scanf("%d",&x);while(x!=-1){p=(N*)malloc(sizeof(N));p->info=x;p->next=NULL;if(!head){head=p;q=p;}else{q->next=p;q=p;}scanf("%d",&x);}return head;
}void display(N *head)
{N *p=head;if(head==NULL){printf("dispaly  none\n");return ;}while(p){printf("%5d",p->info);p=p->next;}printf("\n");
}int length(N *head)
{N *p=head;int count=0;while(p){count++;p=p->next;}return count;
}int judge(N *head)
{int count1=1,count2=1,count=1;N *p=head;if(!head){printf("judge  none\n");return 1;}if(head && !head->next){return 1;}while(p->next){if(p->info <= p->next->info){count1++;}if(p->info >=p->next->info){count2++;}p=p->next;}//count是链表的总长度count=length(head);printf("count1 = %d\ncount2 = %d\ncount = %d\n",count1,count2,count);if(count == count1 || count == count2){return 1;}else{return 0;}
}int main ()
{N *head;int count=0;head=init();head=creat(head);display(head);if(judge(head)){printf("有序\n");}else{printf("无序\n");}return 0;
}

【数据结构】判断一个单链表中各结点的值是否有序相关推荐

  1. 单链表——判断一个单链表中是否有环

    2019独角兽企业重金招聘Python工程师标准>>> package jxau.lyx.link;/*** * @author: liyixiang* @data:2014-10- ...

  2. 判断一个单链表中是否存在环

    #判断一个单链表中是否存在 环. #设置两个指针(fast, slow),初始值都指向头,slow每次前进1步,fast每次前进2步, 大概的思路如下: 如果链表存在环,则fast必定先进入环,而sl ...

  3. 判断一个单链表中是否有环

    思路:快慢指针实现 用两个指针,一个指针一次走一步,另一个指针一次走两步,如果存在环,则这两个指针会在环内相遇,时间复杂度为O(n) /*** 检测单链表中是否有环*/public static bo ...

  4. 用python 判断一个单链表是否有环

    文章目录 用python 判断一个单链表是否有环. 第二次做DAY20201130 [141. 环形链表](https://leetcode-cn.com/problems/linked-list-c ...

  5. 判断一个单链表是否有环,若有,找出环的入口节点

    题目:如何判断一个单链表是否有环?若有环,如何找出环的入口节点. 一.单链表是否有环 思路分析: 单链表有环,是指单链表中某个节点的next指针域指向的是链表中在它之前的某一个节点,这样在链表的尾部形 ...

  6. 数据结构:在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( )

    在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( ) A.q=p->next; p->next=p->next->next; free(q) B.p=p-> ...

  7. 2013递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)

    描述 利用单链表表示一个整数序列,利用递归的方法计算单链表中结点的个数. 输入 多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔).当n=0时输入结束. 输出 ...

  8. 2012递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)

    描述 利用单链表表示一个整数序列,利用递归的方法计算单链表中结点的个数. 输入 多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔).当n=0时输入结束. 输出 ...

  9. 如何判断一个单链表是否有环?

    快慢指针查询,快指针每次跳两个,慢指针每次跳一个,如果两指针相等时,就证明有环 环的入口: 用两个指针,一个指向快慢指针相交点(这里就是慢指针走,慢指针在走快指针的一半就相当于快指针走的路了,还会到这 ...

最新文章

  1. HDU6346(最小权值完美匹配)
  2. 用Handler的post()方法来传递线程中的代码段到主线程中执行
  3. 影响和改变世界的50件发明专利,猜下中国有几个?
  4. micronet 测试
  5. get与post的区别与联系
  6. 【NC14 按之字形顺序打印二叉树】
  7. spring集成 log4j + slf4j
  8. 5.数据结构 --- 数组和广义表
  9. POJ1270 Following Orders(拓扑排序+回溯)
  10. java 反正切不正确_反正切函数
  11. C++ 遍历文件夹下所有文件的多种方法
  12. “双态IT”成就业务“互联网+”转型 —— 联想发布《联想双态IT白皮书》和“双态IT”解决方案家族...
  13. nginx配置ssl证书实现微信小程序后端接口访问
  14. 性早熟和微生物群:性激素-肠道菌群轴的作用
  15. 【毕设选题】基于STM32的毕业设计题目项目汇总 - 350例
  16. 量化分析(一)数据采集、预处理SVM建模
  17. Linux等保三级整改
  18. HDOJ 1847Good Luck in CET-4 Everybody!(巴士博弈)
  19. springboot+hutool批量生成二维码压缩导出
  20. chrome 导出历史访问记录

热门文章

  1. 软件测试培训需要学习什么
  2. spring ioc原理分析
  3. 游戏开发:js实现简单的板球游戏
  4. AndroidApplication优化解耦
  5. 再测Golang的JSON库
  6. 搭建Docker私有仓库--自签名方式
  7. linux的ftp服务器
  8. eclipse中安装使用Gradle构建工具
  9. 轻松掌控全链路服务监控:方案概述与对比 | 真的很干!
  10. Bulk_Collect_Performance 比较