三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 403|回复: 0
打印 上一主题 下一主题

C语言数据结构-main2-31.c

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-9-1 08:18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. /* main2-31.c 检验bo2-3.c和bo2-31.cpp的主程序 */
  2. #include"c1.h"
  3. typedef int ElemType;
  4. #include"c2-3.h"
  5. #include"bo2-3.c" /* 两种方法都适用的函数在此文件中 */
  6. #include"bo2-31.c"

  7. void visit(ElemType c)
  8. {
  9.    printf("%d ",c);
  10. }

  11. void main()
  12. {
  13.    int j,k;
  14.    Status i;
  15.    ElemType e,e0;
  16.    SLinkList L;
  17.    InitList(L);
  18.    for(j=1;j<=5;j++)
  19.      i=ListInsert(L,1,j);
  20.    printf("在L的表头依次插入1~5后:L=");
  21.    ListTraverse(L,visit);
  22.    i=ListEmpty(L);
  23.    printf("L是否空:i=%d(1:是 0:否)表L的长度=%d\n",i,ListLength(L));
  24.    i=ClearList(L);
  25.    printf("清空L后:L=");
  26.    ListTraverse(L,visit);
  27.    i=ListEmpty(L);
  28.    printf("L是否空:i=%d(1:是 0:否)表L的长度=%d\n",i,ListLength(L));
  29.    for(j=1;j<=10;j++)
  30.      ListInsert(L,j,j);
  31.    printf("在L的表尾依次插入1~10后:L=");
  32.    ListTraverse(L,visit);
  33.    GetElem(L,5,&e);
  34.    printf("第5个元素的值为:%d\n",e);
  35.    for(j=0;j<=1;j++)
  36.    {
  37.      k=LocateElem(L,j);
  38.      if(k)
  39.        printf("值为%d的元素在静态链表中的位序为%d\n",j,k);
  40.      else
  41.        printf("没有值为%d的元素\n",j);
  42.    }
  43.    for(j=1;j<=2;j++) /* 测试头两个数据 */
  44.    {
  45.      GetElem(L,j,&e0); /* 把第j个数据赋给e0 */
  46.      i=PriorElem(L,e0,&e); /* 求e0的前驱 */
  47.      if(!i)
  48.        printf("元素%d无前驱\n",e0);
  49.      else
  50.        printf("元素%d的前驱为:%d\n",e0,e);
  51.    }
  52.    for(j=ListLength(L)-1;j<=ListLength(L);j++) /* 最后两个数据 */
  53.    {
  54.      GetElem(L,j,&e0); /* 把第j个数据赋给e0 */
  55.      i=NextElem(L,e0,&e); /* 求e0的后继 */
  56.      if(!i)
  57.        printf("元素%d无后继\n",e0);
  58.      else
  59.        printf("元素%d的后继为:%d\n",e0,e);
  60.    }
  61.    k=ListLength(L); /* k为表长 */
  62.    for(j=k+1;j>=k;j--)
  63.    {
  64.      i=ListDelete(L,j,&e); /* 删除第j个数据 */
  65.      if(i)
  66.        printf("删除的元素为:%d\n",e);
  67.      else
  68.        printf("删除第%d个数据失败\n",j);
  69.    }
  70.    printf("依次输出L的元素:");
  71.    ListTraverse(L,visit); /* 依次对元素调用visit(),输出元素的值 */
  72. }
复制代码


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2025-5-1 23:56 , Processed in 0.068557 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表