• 线性表(顺序存储结构)


    线性表:它是由n个数据元素组成的有限序列。(a1,a2,...an)

    线性表的特征:

    1.有且只有一个开始元素a1,它没有前趋,只要一个直接后继。

    2.有且只有一个终端元素an,,它没有后继,只有一个直接前趋。

    3.其它元素ai(2<=i<=n-1)内部元素,都有一个直接前趋和后继。

    线性表的特征元素之间的相邻关系,也是线性关系。

    顺序结构存储,在存储单元里数据元素依次存放,顺序表可以通过基地址和每个元素所占空间计算每个元素的存储位置,并随机存取。

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define MAX 10
    #define Element int
    typedef struct list {
      Element data[MAX];
      int length;
    } List;
    
    /**
    初始化
    */
    void initList(List *arr) {
      memset(arr->data, 0, sizeof(List));
      arr->length = 0;
      return;
    }
    
    void ClearList(List *arr) {
      arr->length = 0;
    }
    
    Element getInVal(List *arr, int i) {
      if (i >= 0 && i < arr->length)
        return arr->data[i];
    }
    /**
    插入
    */
    int insert(List *arr, int i, Element val) {
      if (i < 1 || i > arr->length+1) {
        printf("position error
    ");
        return 1;
      }
      if (arr->length >= MAX) {
        printf("overflow");
        return 2;
      }
      int s;
      for(s = arr->length-1; s >= i-1; s--)
        arr->data[s+1] = arr->data[s];
    
      arr->data[i-1] = val;
      arr->length++;
    }
    
    /**
    **删除
    **/
    int delete(List *arr, int i, Element *val) {
      int k;
      if(i < 1 || i > arr->length) {
        printf("position error
    ");
        return 1;
      }
      *val = arr->data[i];
      for(k = i; k < arr->length; k++)
        arr->data[k-1] = arr->data[k];
      arr->length--;
      return 0;
    }
  • 相关阅读:
    Keepalived安装配置
    Playbook 角色(Roles) 和 Include 语句
    Ansible Playbook
    ansible的Ad-hoc命令
    Android线程简介
    宝岛探险,DFS&BFS
    再解炸弹人,dfs&bfs
    解救小哈——bfs广搜
    解救小哈——dfs深搜
    数的全排列
  • 原文地址:https://www.cnblogs.com/Python-233/p/14939215.html
Copyright © 2020-2023  润新知