zoukankan      html  css  js  c++  java
  • 浅知线性表

    顺序表(似数组)

    • 优:通过下标直接存储。

    • 缺:长度不可加;插入和删除操作时,移动大量元素。

    初始化

    List P;//定义一个表为P
    P = (List)malloc(sizeof(struct LNode));//分配线性表的空间
    L->length = 0;//设置空线性表的长度为0
    

    • 在元素增加的位置及以后的元素全向后移动一个
    int a[]={1,0,3,8,2,9};
    int n= len(a);
    for(int j=n;j>i;j--){//i为元素插入位置
        a[j]=a[j-1];//向后挪一位
        length++;//表长度加加
    }
    

    • 删除后,后面的元素向前移
    for(int j=i;j<=n;j++){//从删除位置到表尾
       a[j-1]=a[j];//向前挪一位(后一个代替前一个)
    length--;//表长度减减
    }
    

    • 按序号查值
    for(int i=0;i<=n;i++){//下标
     if(e = a[i]){cout<<a[i];}//如果找到与值e匹配的下标,输出值
    }
    
    • 按值找序号
    int i=0;
    while(i<n&&a[i]!=e)//查找元素
          i++;
    if(i>=n)//一直找到表尾
          return 0;
    else 
          return i+1;//返回序号,序号=下标+1
    

    链表(单)

    • 优:插入和删除操作时,不移动元素,只需改变指针指向。

    • 缺:查找较慢。

    初始化

    P = (LinkNode)malloc(sizeof(LinkNode));
    P->next = NULL;//创建头结点,其next域置为空
    

    (1)中间插入

    s->next = p->next;
    p->next = s;
    

    (2)头插法

    s->next = L->next;//将s结点插入首节点之前,头结点之后
    L->next = s;//头结点之后
    

    (3)尾插法

    r->next=s;//假设r始终指向尾结点,将s插入到结点r之后
    r=s;//让s成为尾结点
    

    q = p -> next;//q为待删结点,p为q的前结点
    p -> next = q -> next;//删除操作,把p的下一个结点直接改成q的下一个结点
    free(q);//释放删除掉的空间
    

    • 按序号查值
    int j = 0;
    LInkNode *p = L;//p指向头结点
    if(i<=0)retrun false;
    while(j<i&&p!=NULL)//遍历找第i个结点p
    {
          j++;
          p=p->next;
    }
    if(p==NULL)
          return false;//遍历完还没找到
    else
    {
          e= p->data;//找到
          return turn;
    }
    
    • 按值找序号
    int i = 1;//序号从1开始
    LInkNode *p = L->next;//创建头结点,指向首结点
    while(p!=NULL&&p->data!=e)//查找值为e的结点,其序号为i
    {
          p=p->next;
          i++;
    }
    if(p==NULL)//不存在时
          return(0);
    else//找到值为e的点,返回其序号
          return(i);
    
  • 相关阅读:
    Centos7 ftp服务器搭建
    搭建单机版spark
    JAVA JDBC大数据量导入Mysql
    springboot使用自带连接池连接postgre
    linux centos6安装postgresql
    SpringBoot中配置不序列化返回值为null的属性
    sublime 3 安装格式化JSON插件
    HIve分组查询返回每组的一条记录
    FastJson乱序问题
    深入理解迪杰斯特拉算法
  • 原文地址:https://www.cnblogs.com/lushuang55/p/13620027.html
Copyright © 2011-2022 走看看