zoukankan      html  css  js  c++  java
  • 数据结构概述

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

                               空间复杂度

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

                               难易程度

                               健壮性

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

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

    预备知识:
        指针
          指针的重要性: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)
        结构体
        动态内存的分配和释放

  • 相关阅读:
    python和matlab哪个难?看这篇就够了
    C语言怎么入门?(小白进)
    零基础学习单片机必看的一些知识点
    什么?Windows 里也可以访问 Linux 子系统文件了?
    智能小车开发的重点之电机该如何选型
    8种必知pcb电路原理图的绘制方法,你会吗?
    硬件工程师必备电路设计工具。进来,考考你?
    Leetcode-122. 买卖股票的最佳时机 II
    Leetcode-33. 搜索旋转排序数组
    Leetcode-236. 二叉树的最近公共祖先
  • 原文地址:https://www.cnblogs.com/bedfly/p/11954065.html
Copyright © 2011-2022 走看看