zoukankan      html  css  js  c++  java
  • 数据结构 4

    顺序表

      线性表的顺序存储

    顺序表的样子:

    顺序表的特点:

      逻辑上顺序,在物理存储上也是顺序的,相邻的

      随机访问,通过序号可以有限的时间内找到所需的元素

      存储密度高,每个节点只存储数据元素

      插入和删除正常需要移动很多元素

    顺序表的基本操作:

      插入操作图片:

     

    代码:

    //顺序表的插入操作
        bool ListInsert (SqList &L, int i , ElemType e){
            if(i < 1 ||  i >L.length +1)//判断i的范围是否合法
            return false
            if( L.lenth >= MaxSize)//存储空间是否满了
                return false;
                
                //开始插入元素
            for(int j = L.ength;j>=i;j--){
                L.data[j] = L.data[j-1];
                L.data[i-1] = e;
                L.length++;
                return true;
            
            }

    删除操作:

      代码:

    //顺序表删除操作代码
    bool ListDelete(SqList &L, int i ,ElemType &e){
        if(i<1 || i>L.length)//判断i的范围是否合法
            return false;
        
        e = L.data[i-1];//将要删除的元素值取出来
        
        //开始删除第i个
        for(int j = i; j<=L.length; j++){
            //前移
                L.data[j-1] = L.data[j];
                }
                L.length--;
                return true;
            }

    //按值查找

      代码:

      int  LocateElem (SqList  &L, ElemType e){
        int i ;
        for(i=0; i<L.length;i++){
            if( L.data[i] == e){
                return i+1;    //输出第几个元素
                }
            return 0;
            }

    会当凌绝顶,一览众山小
  • 相关阅读:
    LeetCode347 前k个高频元素
    剑指42 连续字数租的最大和
    hdu1540
    hdu4553 两棵线段树
    cdq分治
    负环
    最短路
    差分约束系统
    hdu3308
    hdu5862 树状数组+扫描线+离散化
  • 原文地址:https://www.cnblogs.com/quenvpengyou/p/13512137.html
Copyright © 2011-2022 走看看