Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4263160
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-05-08 20:54:55

附加:
      text.rar  
代码:

  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #define Maxsize 50

  4. typedef elem_type;
  5. typedef struct
  6. {
  7.     elem_type data[Maxsize];
  8.     int length;
  9. }SQLIST;

  10. void init_list(SQLIST *sqlist) //初始化 length长度
  11. {
  12.     sqlist->length=0;
  13. }

  14. int get_length(SQLIST *sqlist) // 返回顺序表的 域值
  15. {
  16.     return sqlist->length;
  17. }

  18. int get_elem(SQLIST *sqlist,int i,elem_type *elem) //求线性表中第i个元素
  19. {
  20.     if(i<1||i>sqlist->length) //无效
  21.         return 0;
  22.     else
  23.     {
  24.         *elem=sqlist->data[i-1];
  25.         return 1;
  26.     }
  27. }

  28. int locate(SQLIST *sqlist,elem_type x) //在顺序表中查找第一个值为x的元素,
  29. { //返回其位置
  30.     int i=0;
  31.     while(sqlist->data[i]!=x)
  32.         i++;
  33.     if(i>sqlist->length)
  34.         return 0; //未找到
  35.     else
  36.         return (i+1);
  37. }

  38. int insert_elem(SQLIST *sqlist,elem_type x,int i)
  39. {
  40.     int j;
  41.     if(i<1||i>sqlist->length+1)
  42.         return 0;
  43.     for(j=sqlist->length;j>i;j--)
  44.     {
  45.         sqlist->data[j]=sqlist->data[j-1];
  46.     }
  47.     sqlist->data[i-1]=x;
  48.     (sqlist->length)++;
  49.     return 1;
  50. }

  51. int del_elem(SQLIST *sqlist,int i)
  52. {
  53.     int j;
  54.     if(i<1||i>sqlist->length)
  55.         return 0;
  56.     for(j=i;j<sqlist->length;j++)
  57.         sqlist->data[j-1]=sqlist->data[j];
  58.     sqlist->length--;
  59.     return 1;
  60. }

  61. void disp_list(SQLIST *sqlist)
  62. {
  63.     int i;
  64.     for(i=1;i<=sqlist->length;i++)
  65.         printf("%c ",sqlist->data[i-1]);
  66.     printf("\n");
  67. }

  68. void main()
  69. {
  70.     int i;
  71.     elem_type elem;
  72.     SQLIST sqlist;
  73.     init_list(&sqlist);
  74.     insert_elem(&sqlist,'a',1);
  75.     insert_elem(&sqlist,'b',2);
  76.     insert_elem(&sqlist,'c',3);
  77.     insert_elem(&sqlist,'d',4);
  78.     insert_elem(&sqlist,'e',5);
  79.     insert_elem(&sqlist,'f',6);
  80.     insert_elem(&sqlist,'g',7);
  81.     
  82.     printf("data diagram:");disp_list(&sqlist);
  83.     printf("length:%d\n",get_length(&sqlist));
  84.     i=3;get_elem(&sqlist,i,&elem);
  85.     printf("the %dth data is:%c\n",i,elem);
  86.     elem='a';
  87.     printf("data %c is number%d\n",elem,locate(&sqlist,elem));
  88.     i=4;printf("delete number %d data\n",i);
  89.     del_elem(&sqlist,i);
  90.     printf("data diagram:");disp_list(&sqlist);


  91. }





阅读(671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~