赞
踩
- typedef struct List
- {
- int *data;//元素数组
- int length;//可以写入多少元素
- int num;//目前元素个数
- }List;
- List *initList(int length)
- {/*参数length:有多少元素空位*/
- List *list = (List*)malloc(sizeof(List));//为列表申请空间
- list->length = length;//元素长度写入
- list->data = (int*)malloc(sizeof(int)*length);//为列表内的数组申请空间
- list->num = 0;//初始元素个数为0
- return list; //返回列表
- }
- void listAdd(List *list,int data)
- {/*参数一:列表指针
- 参数二:要写入的元素*/
- list->data[list->num] = data;//将元素按序写入
- list->num += 1;//列表内元素数量加一
- }
- int search(List *list,int key)
- {/*参数一:列表指针
- 参数二:要查找的元素*/
- int i;
- for(i=0;i<list->num;i++)//循环遍历列表中的每一个元素直到与要查找的元素值相等
- {
- if(list->data[i]==key)
- return key;
- }
- return -1;//没查到返回-1
- }
- void printList(List *list)
- {/*参数list:列表指针*/
- int i;
- for(i=0;i<list->num;i++)//循环遍历,按序输出列表内data的值
- printf("%d ",list->data[i]);
- printf("\n");
- }
- int main()
- {
- List *list = initList(5);//初始化,列表长度设为5
- int i,key,n;
- for(i=0;i<5;i++)
- listAdd(list,i);//往列表内写入元素
- printf("列表内元素:");
- printList(list);//遍历输出列表
- printf("请输入要查找的元素:");
- scanf("%d",&key);
- n = search(list,key);//查找元素
- if(n>=0)
- printf("查找到该元素n:%d\n",n);
- else
- printf("未查找到该元素!\n");
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- List *initList(int length)
- {/*参数length:有多少元素空位*/
- List *list = (List*)malloc(sizeof(List));//为列表申请空间
- list->length = length;//元素长度写入
- list->data = (int*)malloc(sizeof(int)*length);//为列表内的数组申请空间
- list->num = 1;//初始元素个数为0,加上哨兵num为1
- return list; //返回列表
- }
- int search(List *list,int key)
- {/*参数一:列表指针
- 参数二:要查找的元素*/
- int i;
- list->data[0] = key;//将要查找的元素写入哨兵位置
- for(i=(list->num)-1;list->data[i]!=key;i--);//从后往前找,找到要查找的元素时就停止循环
- return i;//返回元素下标
- }
- void printList(List *list)
- {/*参数list:列表指针*/
- int i;
- for(i=1;i<list->num;i++)//循环遍历,按序输出列表内data的值
- printf("%d ",list->data[i]);
- printf("\n");
- }
- int main()
- {
- List *list = initList(5);//初始化,列表长度设为5
- int i,key,n;
- for(i=0;i<5;i++)
- listAdd(list,i);//往列表内写入元素
- printf("列表内元素:");
- printList(list);//遍历输出列表
- printf("请输入要查找的元素:");
- scanf("%d",&key);
- n = search(list,key);//查找元素
- if(n!=0)//没有找到第0个位置,说明查找到了
- printf("查找到该元素n:%d\n",list->data[n]);
- else//查找到哨兵位置说明没有该元素
- printf("未查找到该元素!\n");
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- #include <stdio.h>
- #include <stdlib.h>
- /*线性表结构体*/
- typedef struct List
- {
- int *data;//元素数组
- int length;//可以写入多少元素
- int num;//目前元素个数
- }List;
- /*初始化列表*/
- List *initList(int length)
- {/*参数length:有多少元素空位*/
- List *list = (List*)malloc(sizeof(List));//为列表申请空间
- list->length = length;//元素长度写入
- list->data = (int*)malloc(sizeof(int)*length);//为列表内的数组申请空间
- list->num = 0;//初始元素个数为0
- return list; //返回列表
- }
- /*向列表内写入元素*/
- void listAdd(List *list,int data)
- {/*参数一:列表指针
- 参数二:要写入的元素*/
- list->data[list->num] = data;//将元素按序写入
- list->num += 1;//列表内元素数量加一
- }
- /*查找元素*/
- int search(List *list,int key)
- {/*参数一:列表指针
- 参数二:要查找的元素*/
- int i;
- for(i=0;i<list->num;i++)//循环遍历列表中的每一个元素直到与要查找的元素值相等
- {
- if(list->data[i]==key)
- return key;
- }
- return -1;//没查到返回-1
- }
- /*遍历输出列表内的元素*/
- void printList(List *list)
- {/*参数list:列表指针*/
- int i;
- for(i=0;i<list->num;i++)//循环遍历,按序输出列表内data的值
- printf("%d ",list->data[i]);
- printf("\n");
- }
- int main()
- {
- List *list = initList(5);//初始化,列表长度设为5
- int i,key,n;
- for(i=0;i<5;i++)
- listAdd(list,i);//往列表内写入元素
- printf("列表内元素:");
- printList(list);//遍历输出列表
- printf("请输入要查找的元素:");
- scanf("%d",&key);
- n = search(list,key);//查找元素
- if(n>=0)
- printf("查找到该元素n:%d\n",n);
- else
- printf("未查找到该元素!\n");
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。