给定一个非空单链表,其数据元素为整数,本题要求实现一个函数,
可判断该单链表是否递增有序。若是,输出“YES”,否则,输出“NO”。
输入样例:
5
1 2 3 4 5
输出样例:
YES
#include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
Status InitList(LinkList &L)
{
L = new LNode;
L->next = NULL;
return OK;
}
void CreateList(LinkList L, int n)
{
LNode *p, *r;
int i;
r = L;
for(i = 0; i < n; ++i)
{
p = new LNode;
cin >> p->data;
r->next = p;
r = p;
}
r->next = NULL;
}
/* 请在这里填写答案 */
int Increase(LinkList L)
{
LNode *p = L->next, *q;
if(p)
{
while (p->next)
{
q = p->next;
if (q->data > p->data)
p = q;
else
return 0;
}
}
return 1;
}
int main()
{
LinkList La = NULL;
int n;
InitList(La);
cin >> n;
CreateList(La, n);
if(Increase(La))
cout << "YES";
else
cout << "NO";
return 0;
}