数据结构
Dr.sen
广阔天地,大有可为
展开
-
数组知识点--数据结构与算法之美
数组基础线性表:数组、链表、队列、栈非线性表:树、图数组可以实现随机访问,因为内存空间连续,数据类型相同,但是删除的时候,为了保证数组的连续性,就要进行大量的数据搬移工作数组地址的计算公式a[i]_address = base_address +i*data_type_size数组的查找操作时间复杂度并不是O(1)。即便是排好的数组,用二分查找,时间复杂度也是O(logn)。应...原创 2019-02-04 14:28:07 · 151 阅读 · 0 评论 -
链表知识点--数据结构与算法之美
链表1. 链表也是一种线性表,链表内部不是连续的,而是将一组零散的内存块串联起来。从而进行数据存储的数据结构2. 链表的每一个内存块被称为节点Node。节点除了存储数据外,还需记录链上下一个节点的地址,即后继指针next。3. 链表的插入是O(1),但是随机访问是O(n)4. 单链表:有两个特殊节点,首节点和尾节点,首节点地址表示整条链表,尾节点的后继指针指向空地址null。5...原创 2019-02-04 16:42:00 · 210 阅读 · 0 评论 -
堆栈知识点--数据结构与算法之美
堆栈1. 栈是一种操作受限的线性表,只能允许在一端进行插入和删除。2. 栈既可以通过数组实现,也可以通过链表实现,主要是限制数据的插入和删除3. 栈的一些应用,在写计算器的时候,求出逆波兰式,存入两个栈中进行计算,在编译原理中通过栈来存放字符串,匹配括号4. 内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。5....原创 2019-02-04 16:49:05 · 246 阅读 · 0 评论 -
冒泡排序,插入排序,插入排序--数据结构与算法之美
冒泡排序冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足就让它俩互换。稳定性:冒泡排序是稳定的排序算法。空间复杂度:冒泡排序是原地排序算法。时间复杂度:最好情况(满有序度):O(n)。最坏情况(满逆序度):O(n^2)。package com.Arithmetic;public class Maopao {...原创 2019-02-04 17:11:26 · 134 阅读 · 0 评论 -
考研数据结构-绪论(王道)
数据结构的基本概念和算法的定义数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据元素是数据的基本单位。数据项是数据元素的最小单位。数据对象是具有相同性质的数据元素的集合。数据结构是相互存在的一种或多种特定关系的数据元素的集合数据结构包括三个方面:逻辑结构、存储结构和数据的运算数据的逻辑结构分类图算法的五个特性有穷...原创 2019-06-27 23:48:20 · 1113 阅读 · 1 评论 -
考研线性表(王道)
知识框架线性表的定义:线性表是具有相同数据类型的n个数据元素的有限序列,除第一个元素外,每个元素有且仅有一个直接前驱,同理除最后一个元素每个元素有且只有一个直接后继线性表的特点:表中元素个数有限 表中具有逻辑上的顺序 每个元素都是数据元素 元素的数据类型相同 元素具有抽象性线性表的基本操作:InitList(&L) Length(L)...原创 2019-06-29 00:04:49 · 430 阅读 · 0 评论 -
数据结构-王道课后题-线性表(1)
顺序表1. 从顺序表中是删除最小元素,并返回该元素的值空出位置由最后一位填充。bool Delete_min(sqList &L, ElemType &value){ if(L.length<=0){ //表为空,直接返回 return false ; } value=L.data[0]; int...原创 2019-06-30 10:34:54 · 1195 阅读 · 0 评论