三木社区

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

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

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

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

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

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


回复

使用道具 举报

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

辽公网安备 21021702000620号

GMT+8, 2025-5-2 00:00 , Processed in 0.026413 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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