精华内容
下载资源
问答
  • 顺序表查找 GetElement(L,i):查找操作。获取表L中第i个位序的元素的。 静态分配顺序表 #define MaxSize 10 typedef struct { int data[MaxSize]; //静态分配 int length; }SqList; int ...

    顺序表的按位查找

    GetElement(L,i):按位查找操作。获取表L中第i个位序的元素的值。

    静态分配顺序表

    #define MaxSize 10
    typedef struct
    {
        int data[MaxSize];		//静态分配
    	int length;
    }SqList;
    
    int GetLem(SqList L,int i)
    {
    	return L.data[i-1];
    }

     

    动态分配顺序表

    #define InitSize 10
    typedef struct
    {
        int *data;		//动态分配
    	int MaxSize;
    	int length;
    }SqList;
    
    void InitList(SqList &L)
    {
        //用malloc函数申请一片连续的存储空间    
        L.data=(int *)malloc(InitSize*sizeof(int) );
        L.length=0;
        L.MaxSize=InitSize;
    }
    
    int GetLem(SqList L,int i)
    {
    	return L.data[i-1];		//和访问普通数组方法一样
    }

     

    顺序表的按值查找

    LocatrElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。

    #define InitSize 10
    typedef struct
    {
        int *data;		//动态分配
    	int MaxSize;
    	int length;
    }SqList;
    
    void InitList(SqList &L)
    {
        //用malloc函数申请一片连续的存储空间    
        L.data=(int *)malloc(InitSize*sizeof(int) );
        L.length=0;
        L.MaxSize=InitSize;
    }
    
    int LocatrElem(SqList L,int e)
    {
    	for(int i=0;i<L.length;i++)
    		if(L.data[i]==e)
    			return i+1;		//数组下标为i的元素值为e,返回其位序i+1
    	return 0;				//退出循环,说明查找失败
    }

    知识总结

    展开全文
  • 数据结构学习中,记录学习...1.查找 //查找 时间复杂度O(1) #define InitSize 10 typedef struct{ ElemType *data; int MaxSize; int length; } SeqList; ElemType GetElem(SeqList L, int i){ ret...

    数据结构学习中,记录学习过程,顺便分享给学习中的你!

    感谢你的关注、点赞、收藏支持!

    1.按位查找

    //按位查找 时间复杂度O(1) 
    #define InitSize 10
    typedef struct{
    	ElemType *data;
    	int MaxSize;
    	int length;
    } SeqList;
    
    ElemType GetElem(SeqList L, int i){
    	return L.data[i-1];
    }
    
    

    在这里插入图片描述
    2.按值查找

    typedef struct{
    	int *data;
    	int MaxSize;
    	int length;
    }SeqList;
    
    int LocatElem(SeqList L,int e){
    	for(int i = 0;i<L.length;i++)
    		if(L.data[i]==e)
    			return i+1;
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 顺序表中按照元素值查找元素的算法 经典的查找方法 顺序表中想要查找某个元素,我们通常想到的办法是:用for循环,逐个元素便利顺序表 如下 int findElem(Sqlist L,int x) { for(int i=0;i<L.length;i++) { ...

    顺序表中按照元素值查找元素的算法

    经典的查找方法

    顺序表中想要查找某个元素,我们通常想到的办法是:用for循环,逐个元素便利顺序表
    如下

    int findElem(Sqlist L,int x)
    {	
    	for(int i=0;i<L.length;i++)
    	{
    		if(x<a[i])
    			return i;
    	}	
    	return i;//当表中不存在比x大的元素时,返回i=L.length	
    }
    

    另一种查找方法

    考虑到这里逻辑上是一个直到型循环,可以改用while

    int findElem(Sqlist L,int x)
    {
    	int i=0;
    	while(x>L.data[i])
    	{
    		i++;//当x比表中元素大时,后移一个单位
    	}
    	return i+1;
    }
    

    注意!!!
    这种方法是存在问题的,如果x比表中所有元素都大,那么判断语句 (x>L.data[i]) 中L.data[i]就会下标越界,表示的是内存的地址

    展开全文
  • 顺序表的插入,删除,按值查找操作 线性表的顺序存储又称为顺序表顺序表的特点是表中元素的逻辑顺序和其物理顺序相同,我的理解就是在内存中找到一块空地,通过占座的形式先把这块空间占住,然后把相同的数据类型...

    顺序表的插入,删除,按值查找操作

    • 线性表的顺序存储又称为顺序表。顺序表的特点是表中元素的逻辑顺序和其物理顺序相同,我的理解就是在内存中找到一块空地,就像平时占座一样,先占住一块连续的地(室友嘛,肯定要坐一块),然后把相同的数据类型依次往里面放,(但不一定坐满,毕竟你占了,室友也不一定来~~)C语言的一维数组就是实现了顺序结构的存储。但要注意以下几点:

    • 线性表的长度不一定等于数组的长度,但是一定小于等于数组的最大长度,即length <= MAXSIZE

    • 线性表的长度就是数据元素的个数,它会随着插入删除操作会变化,而数组可能是静态分配或者动态分布的,静态分布时,一旦空间被占满,再加入新的数据将会溢出,动态分配时,一旦空间被占满,就可以另外开辟新的更大的存储空间(这点我不是很理解,我记得java中ArrayList底层也是以数组的形式来实现的,若需要扩容,就是原始容量右移再加自身容量,相当于扩为原来的1.5倍,那是创建了一个新的数组?)

    • 线性表是从1开始计数的,而数组下标是从0开始的!
      c语言初始动态分配语句为:

    L.data =  (ElemType *) malloc (sizeof(ElemType)*IniteSize) ;
    

    笔记:

    • L.data 是动态分配数组的指针
    • sizeof(ElemType)*IniteSize 是每个元素的长度成语初始的长度,值为malloc(size)的参数
    • malloc分配的内存大小至少为size参数所指定的字节数,其返回值是一个指针,指向可用内存的起始地址
    • ElemType *声明其为ElemType (元素类型)类型的指针

    (1)插入操作

    bool ListInsert (SqLIst &L ,int i,ElemType e){
    	if(i < 1 || i > L.length +1)  //有可能插在最后一个元素的后面``
    		return false;
    	if(L.length >= MaxSize)
    		return false;
    	for(int j = L.length ; j >= i ; j--)   //模拟下句语句执行可知道 j >=i
    	//data[length -1]到data[i -1]  ——> data[length]到data[i ]
    		L.data[j] = L.data[j-1];   //往下标大的位置移动
    	L.data[j-1] = e;     //先往后移再插入
    	 L.length ++;
    	 return true;
    }
    

    (2)删除操作

    bool ListInsert (SqLIst &L ,int i,ElemType &e){
    	if(i < 1 || i > L.length )  
    		return false;
    	 e  =L.data[j-1] ;  //先删除再移动
    	for(int j=i; j < L.length ; j++)   //模拟下句语句执行可知道 j <= L.length-1
    	//data[i]到data[length -1]  ——> data[i-1]到data[length-2]
    		L.data[j-1] = L.data[j];   //往下标小的位置移动
    	 L.length --;
    	 return true;
    }
    

    (额,for循环中具体加不加等于号,我还是用画图模拟其执行过程来解决吧)
    自己画的哈哈哈 (3)按值查找

    bool ListInsert (SqLIst L ,ElemType e){
     	int i;
     	for(i = 0; i <L.length;i++)
     		if (L.data[i] == e)
     		return i+1;
        return 0; 		
    }
    
    展开全文
  • 创建一个顺序表, 向顺序表中插入元素,查找顺序表中的元素(按值查找序号查找),删除顺序表中的某个元素,输出顺序表中的元素算法: #include <stdio.h> #include <stdlib.h> #define ListSize ...
  • 顺序表操作--查找

    千次阅读 2020-07-28 09:25:18
    顺序表的查找分为:位查找和按值查找 1、顺序表基本操作–位查找 GetElem(L,i): 位查找操作,获取表L中第i个位置的元素的值 ElemType GetElem(SeqList L,int i){ return L.data[i-1] } 位查找的时间...
  • 静态查找顺序表查找 c++实现

    千次阅读 2019-07-15 16:27:06
    思想方法: 查找   在生活中,我们经常需要进行查找操作,例如从一本字典中查找一个单词,从图书馆的...查找( Searchìng )就是根据给定的某个, 在查找表中确定一个其关键字等于给定的数据元素(或记录)。 ...
  • C语言数据结构顺序表查找算法

    千次阅读 2019-06-04 11:58:46
    *顺序表查找算法(重点是哨兵的设置) *创建一个数据结构体 *创建一个顺序表的结构体 *顺序表结构体里面包含 数据数组 和 数组长度 *采用两种查找方法 哨兵设置 普通查找 *哨兵排序算法的设置的好处是可以降低时间...
  • 顺序表查找算法

    千次阅读 2018-01-16 20:05:16
    顺序表查找算法,是算法中最基础的查找技术。算法原理:通俗的说,从表中查找数据,只要看到数据与所取值相同,就返回当前索引。上代码:public int seqSerch(int []a, int key){ int i,n=a.length; for(i = 1; ...
  • 学生代码作业
  • 顺序表查找(一)

    2016-01-03 10:21:17
    顺序表查找(一)
  • 【数据结构】顺序表查找

    千次阅读 2017-12-06 14:17:58
    利用顺序表查找数据。#include #include using namespace std; #define LIST_INIT_SIZE 100//顺序表存储空间的初始分配量 #define OK 1 #define ERROR 0 #define LT(a,b) ((a)(b)) typedef int KeyType; ...
  • 顺序表的实现之查找功能 实现文件 更新于2020年4月13日 **************************************************************/ #include <stdio.h> #include <stdlib.h> #include "SeqList.h" void SL_...
  • 顺序表

    千次阅读 多人点赞 2019-11-06 08:49:33
    顺序表是什么呢? 顾名思义,顺序表是物理地址连续的存储单元依次存储数据的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。 顺序表和数组有什么区别呢? 顺序表比数组更约束,顺序表物理地址上...
  • 建立长度为n的顺序表,在表中找出最大和最小值元素所在的位置。 Input 第一行为顺序表的长度n; 第二行为顺序表中的数据元素; Output 第一行为最大的位置; 第二行为最小值的位置。 Sample Input 7 1 2 3 4 5 6...
  • 顺序表的顺序查找:基于顺序表查找指定的key元素, 给出三种:返回它的索引(否则返回-1), 判断是否存在这个(存在返回true, 否则false),查找(存在返回这个元素的, 不存在返回-1)。就是对这个顺序表...
  • 一、顺序表(顺序存储) (一)、定义(如何用代码实现) 线性表是具有相同数据类型的n(n >= 0)个数据元素的有限序列。 顺序表:用顺序存储的方式实现线性表顺序存储。 把逻辑上相邻的元素存储在物理位置上也相邻...
  • 五、顺序表元素查找 六、顺序表取元素数据 七、主函数定义 注1. typedef 解释 注2. 链表知识点总结 一、顺序表定义及特点 1.顺序表定义 用数组存储线性表,称作线性表的顺序存储结构或顺序映像,用这种方法...
  • C语言数据结构顺序表的顺序查找和折半查找的功能

    千次阅读 多人点赞 2020-05-31 20:07:54
    C语言顺序表顺序查找和折半查找的基本思想和应用 顺序查找算法:又称为线性查找,主要用在—线性表—中进行查找 通常分为:1—无序线性表的一般查找; 2—对关键字有序的顺序表查找; 优缺点分析: 缺点:当线性表的...
  • 查找8.2 顺序表8.2.1 顺序表查找基本思想顺序存储结构下的顺序查找算法平均查找长度8.2.2 有序表的折半查找折半查找的算法思想折半查找算法一般代码二叉搜索树 8.2 顺序表 采用顺序存储结构的数据表称为顺序表。...
  • 顺序表元素的查找、插入与删除

    千次阅读 2019-07-12 17:30:40
    顺序表查找元素为e的元素,并返回其下标 int findElem(List *l,int e) { int i; for(i=0;i<l->length;++i) { if(l->data[i]==e) return i+1; //返回e的位置 } return 0; //没找到返回0...
  • (1) 从键盘读入一组整数,输入顺序形成顺序表。并将创建好的顺序表元素依次打印在屏幕上。 (2) 设计一个带选择菜单的主函数,菜单中具备任意选择删除、插入、查找数据元素的功能。 (3) 当选择删除功能时,从...
  • 顺序表查找

    千次阅读 2018-08-31 16:37:08
    顺序查找 就是从一端开始比较,直到找到或者全部计较完。 平均查找长度(n+1)/2 折半查找 首先必须是有序,然后每次和中中间的元素比较,如果相等则找到,不相等就排除一半的数据元素。 有两种实现,迭代和...
  • 顺序表创建、查找、插入、删除操作集(c语言实现) 刚开始学数据结构,看c语言版本的,但看书总是想不通,网上荡的资源也是错的(而且错的很离谱)就自己试着操作了一下,发现还是很棘手的。我编写的每个函数参数都...
  • 有关插入函数、查找函数、删除函数参数如下: 插入函数insertSeqList(SeqList *L,int i, dataType x);...//删除L中第i个元素,并返回其。 本函数支持 printf("\n输入你要选择的命令\n"); printf.
  • 顺序表查找指定元素

    千次阅读 2019-04-26 12:30:17
    本题要求实现一个函数,要求从顺序表查找指定元素,并返回第一个查找成功的元素在表中的位置序号,若查找失败,则返回0;函数接口定义:int LocateElem(SqList L,ElemType e); 其中SqList结构定义如下:typedef ...
  • C语言实现顺序表基本操作

    千次阅读 2019-07-31 15:42:08
    C语言实现顺序表的基本操作
  • 数据结构中顺序表的相关查找算法

    千次阅读 2016-10-08 16:13:36
    今天给大家带来的是相关数据结构的查找算法,相信读过前几篇相关数据结构构建的读者应该能体会到两种常用数据结构的相关基础知识。 ...分别是 简单顺序查找,有序表的二分查找以及索引顺序表查找
  • 顺序表作为线性表最基本的一种结构。本文介绍了顺序表的定义和特点,然后给出了顺序表的常见各种操作和代码,包括了初始化、查找、插入、删除和归并(合并),并分析了程序的复杂度。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 371,669
精华内容 148,667
关键字:

顺序表按值查找