精华内容
下载资源
问答
  • C语言实现单链表创建、删除、查找、插入

    万次阅读 多人点赞 2018-04-08 22:13:59
    本文将详细的介绍C语言单链表的创建、删除、查找、插入以及输出功能创建#include<stdio.h> #include<stdlib.h> typedef int ElemType; /*结构体部分*/ typedef struct Node { ...

    本文将详细的介绍C语言单链表的创建、删除、查找、插入以及输出功能

    一、创建

    #include<stdio.h>
    #include<stdlib.h>
    
    typedef int ElemType;
    /*结构体部分*/
    typedef struct Node
    {
        ElemType data;   //数值域
        struct Node *next;  //指针域
    }Linklist;
    
    Linklist *InitList(Linklist *L)    //初始化单链表
    {
        L = (Linklist *) malloc(sizeof(Linklist));
        L->next = NULL;
        return L;
    }
    
    Linklist *CreateList(int n)
    {
        /*通过输入n个数据,创建一个单链表*/
        int x,i;
        Linklist *L,*r,*p;
        L = InitList(L); //构造头结点
        r = L;
        printf("input %d value: ",n);
        for(i=0;i<n;i++)
        {
            scanf("%d",&x);
            p = (Linklist *)malloc(sizeof(Linklist));
            p -> data = x;
            p -> next = NULL;
            r->next = p;
            r = r->next;    //指针r始终指向链表中末数据元素所在位置
    
        }
        return L;
    }

    二、插入

    int InsItem1(Linklist *L,ElemType item,int x) /*给定的序号来插入*/
    {
        int i = 1;
        Linklist *p,*t;
        p = L;
        t = (Linklist *)malloc(sizeof(Linklist));
        t ->data = item;
        if(L->next==NULL)
        {   /*若L为空表且要求将新结点插入到第0个位置*/
            if(x==1)
                {
                    L->next=t;
                    t->next=NULL;
                    return 1;
                }
            /*若L为空表且要求将新结点插入到第非0个位置     ,则操作失败*/
            else
            {
                printf("wrong!\n");
                return 0;
            }
        }
        while(p->next!=NULL&&i<x)
        /*查找第i个节点*/
        {
            p = p->next;
            i++;
        }
        if(p->next==NULL&&i<x)
        /*在表中不存在插入位置i ,找不到,则插入操作失败*/
        {
            printf("The node %d is not exist\n",x);
            return 0;
        }
        else
        {
            t->next = p->next;
            p->next = t;
            return 1;
        }
    }
    
    int InsItem2(Linklist *L,ElemType item,ElemType k) /*插入给定值在链表中的位置*/
    {
        Linklist *q,*p,*t;
        t = (Linklist *)malloc(sizeof(Linklist));
        t->data = item;
        if(L->next==NULL)
        {
            printf("The linklist is empty\n");
            return 0;
        }
        else
        {
            q = L;
            p = L->next;
            while(p->next!=NULL)/*查找值为k的结点*/
            {
                if(p->data!=k)
                {
                    q = p;
                    p = p->next;
                }
                else
                    break;
            }
            if(p==NULL)/*如p= =NULL,则没有值为k的结点,插入操作失败*/
            {
                printf("The node %d is not exist\n",k);
                return 0;
            }
            else
            {
                q->next = t;
                t->next = p;
                return 1;
            }
        }
    }

    三、删除

    int DelItem(Linklist *L,int x)
    //在单链表中删除数据元素
    {
        int i = 1;
        Linklist *p,*q;
        p = L;
        if(L->next==NULL) /*L为空表,无结点可删除*/
        {
            printf("The linklist is empty!\n");
            return 0;
        }
        while(p->next!=NULL&&i<x)
        {
            p = p->next;
            i++;
        }
        if(p->next==NULL)
            /*若没有第i个结点,则删除操作失败*/
        {
            printf("The node %d is not exist\n",x);
            return 0;
        }
        else
        {
            q = p->next;
            p->next = p->next->next;
            free(q);
            return 1;
        }
    
    }

    四、查找

    int LocItem(Linklist *L,ElemType x)
    //查找给定值的结点位置
    {
        Linklist *p,*q,*r;
        int i = 1;
        if(L->next==NULL)
        {
            printf("The linklist is empty\n");
            return 0;
        }
        else
        {
            p = L->next;
            while(p!=NULL)
            {
                if(p->data!=x)
                {
                    i++;
                    p = p->next;
                }
                else
                    break;
            }
            if(p==NULL)
            /*如p= =NULL,则没有值为item的结点,删除操作失败*/
            {
                printf("The node %d is not exist\n",x);
                return 0;
            }
            /*若找到该节点返回该节点的位置*/
            else
                return i;
        }
    }

    五、输出

    void output(Linklist *L) //输出
    {
        Linklist *p;
        p = L->next;
        printf("output element: \n");
        for(;p!=NULL;p=p->next)
        {
            printf(" %d ",p->data);
        }
        printf("\n");
    }

    六、主函数部分

    int main()
    {
        ElemType x = 5;
        Linklist *L;
        L = CreateList(x);
        output(L);
        InsItem1(L,3,2);
        output(L);
        InsItem1(L,3,4);
        output(L);
        DelItem(L,3);
        output(L);
        printf("3的位置是: %d",LocItem(L,3));
    }
    展开全文
  • 首先创建一个对比的时间点的文件 #touch -t

    首先创建一个对比的时间点的文件

    #touch -t 201407201710.00 abc  //创建一个文件,他的mtime是2014-07-20-17:10:00 

    要查找2014-07-20-17:10:00 这个时间点以后创建或者修改的文件,使用命令

    #find -newer abc           //跟刚才创建的文件对比

    展开全文
  • 查找hive创建的视图

    千次阅读 2014-12-07 15:46:33
    hive 查找视图

    目前版本的hive 一般都支持视图操作,但是只是支持逻辑视图,不支持物理视图,所以在hive shell下创建的视图在hive的数据仓库目录中没有,但是可以在Mysql的元数据库中看到。

    比如下hive 创建一个视图 :name_classnum

    如何查找:

    1 首先确定hive使用mysql存储元数据(参考hive,mysql安装的博客)

    2 链接mysql


    3. 使用hive  use hive;


    4 显示tbls的详细信息


    5. 查找视图:


    至此 视图查找到了。

    根据上图,可以看到TBLS表存储了 很多信息。

    TBLS:存储一些table的信息;DBS:存储数据库的信息。

    TBLS:  TBL_TYPE字段表示,在hive端创建的表所托管表 还是外部表。可以查看下:


    可以看出 hive端的托管表是六个 和一个视图。同时在hive端可以查看:

     

    正好匹配。


    展开全文
  • 创建一个顺序表, 向顺序表中插入元素,查找顺序表中的元素(按值查找和按序号查找),删除顺序表中的某个元素,输出顺序表中的元素算法: #include <stdio.h> #include <stdlib.h> #define ListSize ...

    创建一个顺序表, 向顺序表中插入元素,查找顺序表中的元素(按值查找和按序号查找),删除顺序表中的某个元素,输出顺序表中的元素算法:

    #include <stdio.h>
    #include <stdlib.h>
    #define ListSize 100
    typedef int ListData;
    
    typedef struct
    {
        ListData *data;
        int length;
    }SeqList;
    
    void InitList(SeqList &L)//初始化顺序表
    {
        L.data=(ListData*)malloc(ListSize*sizeof(ListData));
        if(L.data==NULL)
        {
            printf("存储分配失败\n");
            exit(1);
        }
        L.length=0;
    }
    
    void CreatList(SeqList &L)//创建顺序表
    {
        printf("要创建顺序表的长度为:\t");
        scanf("%d",&L.length);
        printf("Please input your elements:\n");
        for(int i=0;i<L.length;i++)
            scanf("%d",&L.data[i]);
    }
    
    void InsertList(SeqList &L,ListData x,int i)//向顺序表中插入元素
    {
        if(i<0||i>L.length||L.length==ListSize)
            printf("插入失败\n");
        else
        {
            for(int j=L.length;j>i;j--)
                L.data[j]=L.data[j-1];
            L.data[i]=x;
            L.length++;
        }//插入成功
    }
    
    int FindByValue(SeqList &L,ListData x)//按值查找
    {
        int i=0;
        while(i<L.length&&L.data[i]!=x)
            i++;
        if(i<L.length) return i;//查找成功
        else {printf("查找失败\n");return -1;}//查找失败
    }
    
    int FindByNumber(SeqList &L,int i)//按序号查找
    {
        if(i<0||i>=L.length)
        {
            printf("查找失败\n");
            return -1;
        }
        else return L.data[i];
    }
    
    void DeleteList(SeqList &L,ListData x)//删除顺序表中的元素
    {
        int i=FindByValue(L,x);
        if(i>=0)
        {
            L.length--;
            for(int j=i;j<L.length;j++)
                L.data[j]=L.data[j+1];
        }
        else printf("删除失败\n");//表中没有x
    }
    
    void ShowList(SeqList L)//输出顺序表的元素
    {
        printf("输出顺序表中的元素:\n");
        for(int i=0;i<L.length;i++)
            printf("%d\t",L.data[i]);
        printf("\n");
    }
    
    int main()
    {
        SeqList L;
        InitList(L);
        CreatList(L);
        int m,n;
        printf("要插入的元素及插入位置分别为:\t");
        scanf("%d%d",&m,&n);
        InsertList(L,m,n);
        ShowList(L);
        printf("要查找元素值为:\t");
        scanf("%d",&m);
        n=FindByValue(L,m);
        if(n>=0) printf("按值查找该元素的位置为:\t%d\n",n);
        printf("要查找元素位置为:\t");
        scanf("%d",&n);
        m=FindByNumber(L,n);
        if(m>=0) printf("按序号查找该位置的元素值为:\t%d\n",m);
        printf("要删除元素值为:\t");
        scanf("%d",&m);
        DeleteList(L,m);
        ShowList(L);
        return 0;
    }
    
    

    运行结果
    在这里插入图片描述

    展开全文
  • //字符串转化为时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { criteria.andGreaterThanOrEqualTo("createtime",sdf.parse(qcReportbillNcVo.getCreateTime()));...
  • 在计算机科学中,二叉树(英语:Binary tree)是每节点最多只有...今天我们来实现一下二叉树的创建,三种遍历,以及查找等。 拿这二叉树来说吧#ifndef _TREE_H #define _TREE_H#define ElemType char typedef st
  • 单链表基本操作的实现--创建、插入、查找、删除 其中,查找和删除分为 按值查找删除和按序号查找删除; 附上代码(具体的代码实现见注释解析) linkedlist.h(链表的头文件) #pragma once #include class...
  • Linux下查找特定时间创建的文件

    万次阅读 2016-03-17 10:32:18
    要在一个目录中查找2015-12-25创建的java文件,命令: find -name *.java -newermt '2015-12-25 08:00:00' ! -newermt '2015-12-25 21:00:00' 还有一个方法: ls -alR --full-time * | grep "2015-12-25"| grep "....
  • //散列表(哈希表)的创建、初始化、插入与查找 #include<stdlib.h> #include<iostream> using namespace std; #define HASHSIZE 13 #define NULLKEY -32456 //哈希表初始化的值 //定义哈希表结构 ...
  • 上一章节讲诉了使用find命令查询...所以针对这个问题,今天我们来学习另外一个能快速查找一个文件的命令,以及这个命令原理是什么,还会教大家如何在linux中查找我们输入命令所在文件路径。 一、locate 命令 : l...
  • 项目中要实现一个管理XML文件的后台程序,需要对XML文件进行创建,解析,修改,查找等操作,下面介绍如何利用libxml2提供的库来实现上述功能。 1、创建XML文档: 我们使用xmlNewDoc()来创建XML文档,然后使用...
  • 1、document.createDocumentFragment() //创建一个 DOM 片段 createdocumentfragment()方法创建了一虚拟的节点对象,节点对象包含所有属性和方法。 当你想提取文档的一部分,改变,增加,或删除某些内容及插入到...
  • 数据结构-链表操作(创建、输出、查找、插入、删除等) C语言源码 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; typedef char datatype; typedef struct node { datatype data; struct node...
  • 单链表创建查找(C语言)

    千次阅读 2019-09-24 09:50:09
    #include #include typedef int ElemType; typedef struct LNode{ ElemType data;...=e) //从第1结点开始查找data p=p->next; return p; //找到后返回该结点指针,否则返回NULL }  
  • 创建存储过程并调用(附带表的创建,数据的插入等) 示例 创建过程 DROP TABLE IF EXISTS good; CREATE TABLE good( id INT PRIMARY KEY auto_increment, price FLOAT ); INSERT INTO good(price) VALUES(2.3),...
  • *对哈希表数据进行初始化 使每一个位置上都可以判断是否存在元素 *进行 数据的插入(利用哈希函数先确定位置 如果位置上面存在元素 则继续计算位置) *查找到的思想和插入的类似(所处的位置不同 查找失败的判断条件...
  • 创建YGGL数据库并在YGGL数据库创建表:employees,salary,departments 创建XSCJ数据库并在XSCJ数据库创建表:XS,KC,XS_KC 、YGGL 1.首先需要创建YGGL数据库: create database YGGL default character...
  • -- 查询出改客户该房屋对应的最近终止的合同 SELECT a.rent_unit_code, a.contract_code, a.create_date FROM ais_contract a WHERE CONCAT(a.rent_unit_code, a.create_date) IN ( SELECT CONCAT( ...
  • cout 、查询元素" ; cout 、删除元素" ; cout 、退出程序" ; cout 请选择所要执行的操作:"; cin >> n; switch (n) { case 1: head=creat(); Traverlist(head); break; case 2: cout ...
  • 2019access创建数据表、查询和窗体

    千次阅读 2019-10-25 13:59:14
    2019 access创建数据表、查询和窗体 ...点击 “表” ,出现下图,其中第一列 ID 是表默认的一个自增序列 图二图二图二 单击 “单击已添加”,出现下图,你可以选择你想要添加的数据类型,如:“数...
  • 二叉排序树或者是空树,...(3)左右子树本身又是颗二叉排序树 二叉排序树的查找: 二叉排序树的查找与折半查找类似,根结点相当于查找区间的中点,左子树相当于前半子区间,右子树相当于后半子区间。查找过程为:
  • linux 查找指定时间段创建的文件

    千次阅读 2018-08-01 18:13:36
    #!/bin/bash begintime=`date -d -1hour +%T` echo $begintime endtime=`date +%T` echo $endtime find -name '*.jpg' -newermt $begintime ! -newermt $endtime
  • 创建一个最简单的链表,插入和删除

    万次阅读 多人点赞 2018-09-04 21:38:43
    创建一个链表 一、头插法创建链表:   #include &lt;stdio.h&gt; struct list { int num; struct list *next; }; typedef struct list list_single; list_single *creat_list_tail(int n)//尾插法...
  • Linux下查找一个文件的所有软硬链接

    千次阅读 2019-04-25 10:07:52
    问题1:我创建一个硬链接文件,但是我不知道放在那里了,请问怎么办? 思路: 查找文件可以利用find命令。 硬链接的特性,不会跨文件系统,所以源文件在哪个文件系统中,就在那里找 硬链接文件和源文件具有相同的...
  • DOM节点是我们前端人员必须要了解并撑握的一个知识点了,下面我来介绍一些节点的创建、插入、删除、查找、替换操作方法,希望这些方法来帮助到各位同学哦。 在前端开发中,js与html联系最紧密的莫过于对DOM的操作了...
  • f2fs创建一个文件的具体过程

    千次阅读 2015-05-12 18:56:14
    假设需要创建一个文件/dir/file: f2fs_sb_info保存了根目录的inode number,假设是0,此时NAT布局如下: 由于inode number就是node number,查找第0个node的块地址,得到4,然后f2fs读SSD上第4个块的数据,得到了...
  • 常用查找算法——python3实现

    万次阅读 多人点赞 2019-05-28 19:24:22
    文章目录1、顺序查找1.1 简介1.2 基本思路1.3 优缺点1.4 源代码1.5 效果2、二分查找2.1 简介2.2 复杂度分析2.3 源代码2.4 效果3、分块查找3.1 简介3.2 算法思想3.3 算法流程3.4 复杂度分析3.5 源代码3.6 效果4、...
  • Spring data JPA - 通过方法名称创建查询 1.关系对应表 方法关键字 示例 等价于SQL And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or ...
  • 一个是指针域,指向下一个数据单元。这样的数据单元叫做结点。优点相比于顺序表,在插入和删除元素时,效率很高;缺点:链表的元素是不支持随机访问的,想要知道某个元素,只能从头结点开始遍历整个链表,因此链表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 488,593
精华内容 195,437
关键字:

创建一个查询查找