码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表

时间:2014-11-10 17:28:52      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   sp   for   数据   div   

最近在补习本科时学的知识,之后会陆陆续续发一些自己补习时涉及到的知识点,都是基础知识,在这里写出来以来便于自己管理以及查看,二来有需要的同学也可以看看。这是我自己写的顺序表的取数据、插入数据、删除数据、显示数据以及查找数据操作代码,可直接运行。注释得很详细了,应该很容易看懂。

  1 /*顺序表的取数据、插入数据、删除数据、显示数据以及查找数据操作*/
  2 #include <stdio.h>
  3 #define ERROR -1
  4 #define OK 1
  5 #define TRUE 1
  6 #define FALSE 0
  7 #define MAXSIZE 100
  8 //定义顺序表结构体
  9 struct Sqlist
 10 {
 11     int data[MAXSIZE];
 12     int length;
 13 };
 14 
 15 //获取表数据
 16 int GetElement(struct Sqlist list,int index,int *elem)
 17 {
 18     int length=list.length;
 19     //printf("length is %d\n",length);
 20     if(length==0||index<0||index>=length)
 21         return ERROR;
 22     *elem=list.data[index];
 23     return OK;
 24 }
 25 
 26 //向表中插入数据
 27 int Insert(struct Sqlist *list,int index,int elem)
 28 {
 29     int length=list->length;
 30     //printf("length is %d\n",length);
 31     if(length==0||index<0||index>length||length>=MAXSIZE)
 32         return ERROR;
 33     
 34     for (int i=length-1;i>=index;i--)
 35     {
 36         list->data[i+1]=list->data[i];
 37     }
 38     list->data[index]=elem;
 39     list->length++;
 40     printf("length is %d\n",list->length);
 41     return OK;
 42 }
 43 
 44 //删除表中数据
 45 int Delete(struct Sqlist *list,int index)
 46 {
 47     int length=list->length;
 48     //printf("length is %d\n",length);
 49     if(length==0||index<0||index>length-1)
 50         return ERROR;
 51     for (int i=index;i<length-1;i++)
 52     {
 53         list->data[i]=list->data[i+1];
 54     }
 55     list->data[length-1]=\0;
 56     list->length--;
 57     printf("length is %d\n",list->length);
 58     return OK;
 59 }
 60 
 61 //显示数据
 62 void ShowData(struct Sqlist *list)
 63 {
 64     printf("当前数据如下: \n");
 65     for (int i=0;i<list->length;i++)
 66     {
 67         printf("%d  ",list->data[i]);
 68     }
 69     printf("\n");
 70 }
 71 
 72 //找元素位置
 73 void LocationElem(struct Sqlist list,int elem)
 74 {
 75     for (int i=0;i<list.length;i++)
 76     if(elem==list.data[i])
 77         printf("该元素位置为:%d\n",i);
 78     /*else
 79         printf("没找到\n");*/
 80 }
 81 
 82 //主函数
 83 int main()
 84 {
 85     struct Sqlist list=
 86     {
 87         {1,33,43,2,21,34,65,112,32,19},10
 88     };
 89     printf("length is %d\n",list.length);
 90     //测试读数据
 91     int *elem=0,test=11;
 92     elem=&test;
 93     if (OK==GetElement(list,2,elem))
 94     {
 95         printf("list get 2:%d\n",*elem);
 96     }
 97     printf("\n");
 98     //测试插入数据
 99     if (OK==Insert(&list,7,520))
100     {
101         printf("list insert 7 ok!\n");
102     }
103     if (OK==GetElement(list,7,elem))
104     {
105         printf("list get 7:%d\n",*elem);
106     }
107     ShowData(&list);
108     printf("\n");
109     if (OK==Insert(&list,3,520))
110     {
111         printf("list insert 3 ok!\n");
112     }
113     if (OK==GetElement(list,3,elem))
114     {
115         printf("list get 3:%d\n",*elem);
116     }
117     ShowData(&list);
118     printf("\n");
119 
120     //测试删除数据
121     /*if (OK==Delete(&list,3))
122     {
123         printf("list delete 3 ok!\n");
124     }
125     if (OK==GetElement(list,3,elem))
126     {
127         printf("list get 3:%d\n",*elem);
128     }
129     ShowData(&list);
130     printf("\n");*/
131     if (OK==Delete(&list,9))
132     {
133         printf("list delete 9 ok!\n");
134     }
135     if (OK==GetElement(list,9,elem))
136     {
137         printf("list get 9:%d\n",*elem);
138     }
139     ShowData(&list);
140     printf("\n");
141 
142     /*else
143     {
144         printf("list get error!\n");
145     }*/
146 
147     //int input;
148     //scanf("please input the number you want to search:%d",&input);
149     LocationElem(list,33);
150 
151     return OK;
152 }

 

顺序表

标签:style   blog   io   color   ar   sp   for   数据   div   

原文地址:http://www.cnblogs.com/hpc-2436/p/4087567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!