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;
            }

    会当凌绝顶,一览众山小
  • 相关阅读:
    Jupyter Notebook的安装
    Centos6安装crontab
    通用测试用例整理
    appium定位toast消息的使用
    python_appium_模拟器启动app进行登录
    GnuPG的使用入门
    Processing 绘制边框/轮廓(即镂空形状)的方法
    如何制作有遮罩(蒙版)的GIF动图(且支持有透明区域)
    Processing 窗口全屏、多屏、跨屏
    MacPorts Error:Current platform "darwin 16" does not match expected platform "darwin 15"
  • 原文地址:https://www.cnblogs.com/quenvpengyou/p/13512137.html
Copyright © 2011-2022 走看看