带头结点的单链表L,数据域为int型变量。各非头结点若存在直接后继结点目结点数据域大于其后继结点数据域,则该结点得1分,否则得0分。求该单链各结点总得分。
函数原型:int test(LinkList L)
最后一个节点怎么算呢,如下;
#include <iostream>
using namespace std;
typedef struct _datanode
{
int data;
struct _datanode* next;
}LinkNode,*LinkList;
LinkList createList()
{
int i, n;
LinkList head, p, t;
cout << "请输入链表的长度:";
cin >> n;
head = new LinkNode;
head->next = 0;
p = head;
cout << "请输入链表数据:";
for (i = 0; i < n; i++)
{
t = new LinkNode;
cin >> t->data;
p->next = t;
p = t;
}
return head;
}
int test(LinkList L)
{
int sum = 0;
LinkList p = L->next;
while (p)
{
if (p->next && p->data > p->next->data)
sum += 1;
p = p->next;
}
return sum;
}
int main()
{
LinkList head = createList();
cout << "得分:" << test(head);
return 0;
}