zoukankan      html  css  js  c++  java
  • 顺序表基本操作函数总结

    /*************************************************************************************/
    /*   顺序表基本操作函数
    /*------------------------------------------------------------------------------------------------------------------------------
    /*  
    /* Date: 2016年10月14日
    /* Auther:vensontao
    /************************************************************************************/

    #include <stdio.h>
    #include <malloc.h>

    #define MaxSize 50

    typedef char ElemType;

    //--------------------------------------------------------
    // 顺序表的类型定义
    //--------------------------------------------------------
    typedef struct 
    {
         ElemType data[MaxSize];  // 存放顺序表元素
        int length;                        // 存放顺序表的长度
    } SqList;

    //========================================================
    // 建立顺序表
    //========================================================
    void CreateList(SqList *&L, ElemType a[], int n)
    {
         int i;
         for (i=0;i<n;i++)
              L->data[i]=a[i];
         L->length=n;
    }

    //========================================================
    // 初始化顺序表
    //========================================================
    void InitList(SqList *&L)
    {
        L=(SqList *)malloc(sizeof(SqList)); /*分配存放线性表的空间,并将地址初始化为0*/
        L->length=0;
    }

    //========================================================
    // 销毁顺序表
    //========================================================
    void DestroyList(SqList *&L)
    {
        free(L);
    }

    //========================================================
    // 判断顺序表是否为空
    //========================================================
    int ListEmpty(SqList *L)
    {
        return (L->length==0);
    }

    //========================================================
    // 求顺序表的长度
    //========================================================
    int ListLength(SqList *L)
    {
        return (L->length);
    }

    //========================================================
    // 输出顺序表元素
    //========================================================
    void DispList(SqList *L)
    {
        int i;
        if (ListEmpty(L)) 
             return;
        for (i=0;i<L->length;i++)
             printf("%c ",L->data[i]);
        printf(" ");
    }

    //========================================================
    // 求顺序表中某个元素的值
    //========================================================
    int GetElem(SqList *L,int i,ElemType &e)
    {
        if (i<1 || i>L->length)
           return 0;
        e=L->data[i-1];
        return 1;
    }

    //========================================================
    // 求顺序表中某个元素的位置
    //========================================================
    int LocateElem(SqList *L, ElemType e)
    {
      int i=0;
      while (i<L->length && L->data[i]!=e) 
        i++;
      if (i>=L->length)
        return 0;
      else
        return i+1;
    }

    //========================================================
    // 向顺序表指定位置插入元素
    //========================================================
    int ListInsert(SqList *&L,int i,ElemType e)
    {
      int j;
      if (i<1 || i>L->length+1)
        return 0;
      i--; /*将顺序表位序转化为elem下标*/
      for (j=L->length;j>i;j--) /*将data[i]及后面元素后移一个位置*/
        L->data[j]=L->data[j-1];
      L->data[i]=e;
      L->length++; /*顺序表长度增1*/
      return 1;
    }

    //========================================================
    // 删除顺序表中指定位置的元素
    //========================================================
    int ListDelete(SqList *&L,int i,ElemType &e)
    {
      int j;
      if (i<1 || i>L->length)
        return 0;
      i--; /*将顺序表位序转化为elem下标*/
      e=L->data[i];
      for (j=i;j<L->length-1;j++) /*将data[i]之后的元素前移一个位置*/
        L->data[j]=L->data[j+1];
      L->length--; /*顺序表长度减1*/
      return 1;
    }

  • 相关阅读:
    php tp6 踩坑(1)使用cookie助手函数 接口报500错误,但却没用错误信息问题
    php 杂项(2)--md5加密
    php tp6学习笔记(100) 正则表达式
    php 杂项(1)--单引号和双引号的区别
    pins和ports区别
    analyze&elaborate
    编译前后保存database
    DC层次化设计
    synthesis建立和保存
    DC综合过程和目标
  • 原文地址:https://www.cnblogs.com/vs2016/p/5960566.html
Copyright © 2011-2022 走看看