数据结构概述及线性结构

news/2024/11/16 16:27:54 标签: 数据结构

1.数据结构研究的两个东西:逻辑结构和存储结构

2.逻辑结构:

  • 线性:1:1,表。例如每个学生都有唯一的学号。顺序表,链式表。
  • 非线性:层级关系(1:n),树。例如电脑硬盘和文件。顺序树,链式树。
  • 图集关系:(m:n),图。邻接矩阵表示法,邻接表。

3.逻辑和物理:

  • 新华字典:目录,字

4.为了便于理解,存储器为线性编址(实际上并不是)

5.存储方式

  • 顺序存储:顺序表 找第几个很方便 查找
  • 链式存储:链表     插入删除

6.算法:基于存储结构,查找插入删除

二、线性结构

1.编程语言要学的两个作用:语法 ,发布的标准库(核心,os接口,定义结构(数组和字符串操作),c99标准 )

2.顺序表

  • 可变容量的约束:空间首地址指向动态区,空间的容量,空间的有效索引。
  • 动态区:动态区,程序执行是才能申请。malloc
  • 静态区,程序编译时就确定。int

3.数据结构

  • 结构头Header:空间首地址,空间的容量,空间的有效索引。
  • 初始化,卸载数据结构的数据空间

4.实现一个数据结构

  1. 研究它的逻辑结构

5.实现顺序表:

  1. 定义结构:封装一个独立的.c和.h,定义表头。
  2. 实现接口:表头的初始化,释放接口。

http://www.niftyadmin.cn/n/5754386.html

相关文章

Opengl光照测试

代码 #include "Model.h" #include "shader_m.h" #include "imgui.h" #include "imgui_impl_glfw.h" #include "imgui_impl_opengl3.h" //以上是放在同目录的头文件#include <glad/glad.h> #include <GLFW/glfw3.…

PySpark3:Row对象常见操作以及Row、RDD、DataFrame互相转换

目录 一、Row对象常见操作 二、Row、RDD、DataFrame互相转换 1、RDD—>DataFrame 2、DataFrame—>RDD 3、DataFrame—>Row 4、Row—>DataFrame 一、Row对象常见操作 from pyspark.sql import Row# 创建一个Row对象 row Row(name"张三", age25)# …

.NET 9 - BinaryFormatter移除

1.简单介绍 .NET 9 SDK正式版已经发布, 下载地址是.NET9 同时.NET Conf 2024 大会已经从2024-11-13开始了&#xff0c;感觉Aspire和AI的内容相对挺多的&#xff0c;主题分享演示时候打开的网站大部分都是Blazor制作的。 这次.NET Conf 2024老师也再次说明了一下&#xff0c;…

1 图的搜索 奇偶剪枝

图论——图的搜索_Alex_McAvoy的博客-CSDN博客 语雀版本 1 深度优先搜索DFS 1. 从图中某个顶点 v0 出发&#xff0c;首先访问 v0 2. 访问结点 v0 的第一个邻接点&#xff0c;以这个邻接点 vt 作为一个新节点&#xff0c;访问 vt 所有邻接点&#xff0c;直到以 vt 出发的所有节…

回顾二维数组——数组指针部分

数组指针才真正等同于二维数组名 数组指针&#xff1a; 当运行下面的代码的时候&#xff0c;会有警告&#xff0c;偏移量不同&#xff0c;arr偏移的是整行数组&#xff0c;与注释的p不同&#xff0c;如果p&arr[0][0],p表示的就是依次、连续的12个元素地址&#xff0c;偏移…

sql专场练习(二)(1-5)

第一题 create database yhdb01; show tables ; create table sql2_1(uid int,subject_id int,score int ) row format delimited fields terminated by "\t"; load data local inpath /home/homedata/sql2/sql2_1.txt into table sql2_1; select * from sql2_1;100…

Vue.js 前端框架入门

简介 Vue.js 是一个构建用户界面的渐进式JavaScript框架。本文将带你了解Vue项目的目录结构&#xff0c;启动顺序&#xff0c;并逐步指导你安装必要的环境&#xff0c;以及如何开发一个基础的Vue项目。 需要的环境 Node.js&#xff1a;Vue.js 项目依赖于Node.js&#xff0c;…

Android 中的 Zygote 和 Copy-on-Write 机制详解

在 Android 系统中&#xff0c;Zygote 是一个关键的进程&#xff0c;几乎所有的应用进程都是通过它 fork&#xff08;派生&#xff09;出来的。通过 Zygote 启动新进程的方式带来了显著的性能优势&#xff0c;这得益于 fork 操作和 Linux 中的 Copy-on-Write&#xff08;COW&am…