您的位置:首页 > 其它

【第4周 项目3 - 单链表应用(3)】

2015-10-05 16:47 302 查看

问题及代码:

/*
Copyright (c)2015,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:单链表应用(3).cpp
作    者:张耀
完成日期:2015年10月5日
版 本 号:v1.0
问题描述:1、设计一个算法,将一个带头结点的数据域依次为
a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据
域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试
输入描述:若干数据 。
程序输出:链表中的数据及逆序拍好后的数据。
*/


算法库链接

int main()
{
LinkList *A, *B;
int i;
ElemType a[]= {1, 3, 2, 9};
ElemType b[]= {0, 4, 5 ,6, 7, 8};
InitList(A);
for(i=3; i>=0; i--)
ListInsert(A, 1, a[i]);
InitList(B);
for(i=5; i>=0; i--)
ListInsert(B, 1, b[i]);
printf("A: %c\n", increase(A)?'Y':'N');
printf("B: %c\n", increase(B)?'Y':'N');
DestroyList(A);
DestroyList(B);
return 0;
}
bool increase(LinkList *l)
{
LinkList *p;
int a;
p=l;
p=p->next;
a=p->data;
p=p->next;
while(p!=NULL)
{

if(p->data>=a)
{
a=p->data;
}
else return false;
p=p->next;
}
return true;
}


运行结果



知识点总结:

链表数据的性质判断。

学习心得:

p=p->next这句话的位置是很有讲究的,位置的不得当会造成程序的崩溃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: