数据结构:实验三(查找顺序表元素)
2017-03-07 12:49
447 查看
编写函数FindList(L,x)查找顺序表中的值为x的数据并返回索引,如果没找到则返回-1
SeqList.h下载地址:SeqList.h头文件
SeqList.h源码:
#include "stdafx.h" #include "SeqList.h" int main() { SeqList myList ; ListInitiate(&myList);//初始化顺序表,长度为0 for (int i = 0; i < 10; i++) {//赋初值 ListInerst(&myList, i, i + 1); printf("%d ", myList.list[i]); } int value;//要查找的数据 printf("\n输入要查找的数据:\n"); scanf("%d", &value); int index = ListFind(myList, value);//数据索引 if(index != -1)//如果有这个数据,打印数据索引 printf("值为 %d 的索引为 %d ", value, index); return 0; } /* 输出: 1 2 3 4 5 6 7 8 9 10 输入要查找的数据: 5 值为 5 的索引为 4 */
SeqList.h下载地址:SeqList.h头文件
SeqList.h源码:
#pragma once #include "stdio.h" #define MaxSize 100 typedef int DataType; typedef struct { DataType list[MaxSize]; int size; }SeqList; void ListInitiate(SeqList *L) {//初始化顺序表 L->size = 0; } int ListLength(SeqList L) {//返回顺序表长度 return L.size; } int ListInerst(SeqList *L, int i, DataType x) {//插入元素 int j; if (L->size >= MaxSize) { printf("顺序表已满无法插入!"); return -1; } else if (i<0 || i>L->size) { printf("输入参数有误!"); return -1; } else { for (int j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; } } int ListDelete(SeqList *L, int i, DataType *x) {//删除元素 int j; if (L->size <= 0) { printf("顺序表已空,无数据可删!"); return -1; } else if (i<0 || i>L->size - 1) { printf("输入参数有误!"); return -1; } else { *x = L->list[i]; for (j = i + 1; j <= L->size - 1; j++) L->list[j - 1] = L->list[j]; L->size--; return 1; } } int ListGet(SeqList L, int i, DataType *x) {//取出索引为i处的元素 if (i < 0 || i>L.size - 1) { printf("参数不合法!"); return -1; } else { *x = L.list[i]; return 1; } } int ListFind(SeqList L, DataType x) {//查找元素并返回索引 int i; bool bda7 hasFind = false; for (i = 0; i < L.size; i++) { if (x == L.list[i]) { return i; hasFind = true; break; } } if (!hasFind) { printf("顺序表中没有该数据!\n"); return -1; } }
相关文章推荐
- 顺序表查找优化(哨兵元素的重要作用)
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- 算法与数据结构--在顺序线性表L中查找第1个值与e满足compare()的元素的为序--算法2.5
- 数据结构线性表的综合实验——顺序表
- SDUT OJ 2039数据结构上机实验之二分查找
- 数据结构第一次实验——顺序表、栈
- 2015年大二上-数据结构-顺序表(2)-删除元素
- 数据结构练习(04)查找最小的k个元素
- 数据结构面试题1.2.9-查找最小的K个元素-使用最大堆
- 数据结构:实验二线性表综合实验①顺序表
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- sdut数据结构上机实验之二分查找
- 《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)
- 算法与数据结构面试题(5)-查找最小的k 个元素
- 数据结构:有人设计以下算法用于删除整数顺序表L中所有值在[x,y]范围内的元素,该算法显然不是高效的,请设计一个同样功能的高效算法。
- 数据结构_线性表_顺序表 的创建,插入,删除,查找
- 数据结构 【实验1 顺序表基本操作】
- 数据结构上机实验之二分查找
- c语言:【顺序表】静态顺序表的在指定位置插入元素,以及查找指定元素
- java实现数据结构-线性表-顺序表,实现插入,查找,删除,合并功能