第四周 项目3:单链表应用(3)

来源:互联网 发布:教育行业知乎 编辑:程序博客网 时间:2024/06/03 15:05

  1. /*  
  2. * Copyright (c)2016,烟台大学计算机与控制工程学院  
  3. * All rights reserved.  
  4. * 文件名称:jiang.cpp  
  5. * 作    者:姜孝龙  
  6. * 完成日期:2016年9月23日  
  7. * 版 本 号:v1.0   
  8. *问题描述:按照“0207将算法变程序”部分建议的方法,建设自己的专业基础设施算法库。 
  9.         算法库包括两个文件:  
  10.       头文件:linklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;  
  11.       源文件:linklist.cpp,包含实现各种算法的函数的定义     
  12.         请采用程序的多文件组织形式,建立如上的两个文件,另外再建立一个源文件(如main.cpp), 
  13.           编制main函数,完成相关的测试工作。测试工作可以采用“渐进”的思路,每次涉及的函数应该尽可能少。  
  14. *输入描述:无  
  15. *程序输出:输出链表  
  16. */  
linklist.h和linklist.cpp 在单链表算法库 (项目2)点击



  1. #include "linklist.h"  
  2. bool increase(LinkList *L)  
  3. {  
  4.     LinkList *p = L->next, *q;  //p指向第1个数据节点  
  5.     if(p != NULL)  
  6.     {  
  7.         while(p->next != NULL)  
  8.         {  
  9.             q = p->next;   //q是p的后继  
  10.             if (q->data > p->data)   //只要是递增的,就继续考察其后继  
  11.                 p = q;  
  12.             else  
  13.                 return false;    //只要有一个不是后继大于前驱,便不是递增  
  14.         }  
  15.     }  
  16.     return true;  
  17. }  
  18.   
  19. int main()  
  20. {  
  21.     LinkList *A, *B;  
  22.     int i;  
  23.     ElemType a[]= {1, 3, 2, 9};  
  24.     ElemType b[]= {0, 4, 5 ,6, 7, 8};  
  25.     InitList(A);  
  26.     for(i=3; i>=0; i--)  
  27.         ListInsert(A, 1, a[i]);  
  28.     InitList(B);  
  29.     for(i=5; i>=0; i--)  
  30.         ListInsert(B, 1, b[i]);  
  31.     printf("A: %c\n", increase(A)?'Y':'N');  
  32.     printf("B: %c\n", increase(B)?'Y':'N');  
  33.     DestroyList(A);  
  34.     DestroyList(B);  
  35.     return 0;  
  36.   
  37.   
  38. }  


0 0