2021-02-03(数据结构与算法1)

数据结构分为线性数组非线性数组
线性结构(数组、队列、链表、栈)
非线性结构(二维数组、多维数组、广义表、树结构、图结构)

  1. 稀疏数组

当数组中大部分元素为0或者同一个值,采用稀疏数组保存

 //创建稀疏数组
    int[][] sparseArray = new int[sum+1][3];
    //给稀疏数组赋值
    sparseArray[0][0] = 11;
    sparseArray[0][1] = 11;
    sparseArray[0][2] = sum;
    //将非0的数放入稀疏数组
    //count:标识第几个非0数
    int count = 0;
    for (int i = 0;i<11;i++){
        for(int j = 0;j<11;j++){
            if(array[i][j] != 0){
                count++;
                sparseArray[count][0] = i;
                sparseArray[count][1] = j;
                sparseArray[count][2] = array[i][j];
            }
        }
    }
  1. 队列:

有序列表,可以是数组或链表实现
遵循先入先出
元素maxSize、rear(队列尾指针)、front(队列头指针)

  1. 链表:
  • 节点的方式存储
  • 节点含data域,next域
  • 各个节点不一定是连续存储
  • 链表分带头节点链表和没有头结点链表

你可能感兴趣的:(2021-02-03(数据结构与算法1))