数据结构概述

  • 定义:我们如何把现实中大量而复杂的问题以特定的数据类型(个体)和特定的存储结构(个体之间的关系)保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素、删除某个元素,对所有元素进行排序)而执行的响应操作,这个相应的操作也叫算法
  • 数据结构  = 个体 + 个体的关系
  • 算法 = 对存储数据的操作
  • 算法:解题的方法和步骤
    • 衡量算法的标准
      •   事件复杂度
        •   大概程序要执行的次数,而非执行的时间

                           空间复杂度

                        算法执行过程中大概所占用的最大内存

                           难易程度

                           健壮性

  数据结构的地位
    数据结构是软件中最核心的课程

              程序 = 数据的存储  +  数据的操作  +  可以被计算机执行的语言

预备知识:
    指针
      指针的重要性:C语言的灵魂
      定义:
        地址
          内存单元的编号
          从0开始的非负整数
          范围:0 ---FFFFFFFF(0--4G-1)  (地址线   控制线   数据线  cpu通过地址线找内存地址,控制线表示读写,只读,只写,数据线数据传输 0---4G-1  32位只能控制4G-1个内存单元)
        指针就是地址,地址就是指针
        指针变量是存放内存单元地址的变量
        指针的本质是一个操作受限的非负整数

  分类:

    1、基本类型的指针
      int i = 10;

      int *p = &i; //等价于 int *p;   p = &i;

      详解这两部分操作:

      1、P存放了i的地址,所有我们说p指向了i。

      2、P和i是完全不同的两个变量,修改其中的任意一个变量,其他不受影响。

      3、p指向i,*P就是i变量本身,更形象说所有出现*p的地址的地方都可以换成i。

      

    2、指针和数组的关系

      一维数组名是个指针常量

      它存放的是一维数组第一个元素的地址,

      他的值不能被改变

      一维数组名指向的是数组的第一个元素

      下标和指针的关系    a【i】 《==》 *(a + i)
    结构体
    动态内存的分配和释放

posted @ 2019-11-28 21:56  八风不动  阅读(174)  评论(0)    收藏  举报