数据结构学习记录

本文介绍了数据结构的基础知识,包括JSON的特性与格式,线性表(顺序表、单链表)的实现方式,栈和队列(顺序栈、链栈、顺序队列、链队列)的操作与应用,以及如何判断回文。此外,文章还探讨了数据结构与算法的关系。
摘要由CSDN通过智能技术生成

目录

前言

一、JSON

特点

书写格式

二、线性表

顺序表

单链表

三、栈和队列

栈(顺序栈、链栈)

顺序栈

链站表

队列(顺序队列,链式队列)

顺序队列

链队列

四、回文

判断回文的思想

设计构思

总结 


前言

记录我学习数据结构时候的笔记


一、JSON

Json 是存储和交换文本信息的语法,是一种数据格式,类似 XML。

Json 比 XML 更小、更快、更易解析。

Json (JavaScript Objct Notation) 是一种轻量级的数据交换格式。基于 ECMAScript 的一个子集。

特点

1、轻量级的文本数据交换格式。

2、独立于语言。

3、具有自我描述性,更易理解。

书写格式

" 键 : 值 "

名称/值对 如:"fistName:john "

值可以是 数字、字符串、逻辑符、数组、对象、null 、bool 类型

二、线性表

是最简单,最基本,最常用的数据结构。线性表是在线性结构的抽象,线性接口的特点就是数据在表中一对一存储。

实现方式:顺序表、单链表(双向链表,循环链表)。

顺序表

是用地址连续的存储单元顺序存储线性表中的各个数据元素。

优点:在查找任何一个位置上的数据元素非常方便。

缺点:在对顺序表进行插入和删除的时候,需要通过移动数据元素来实现,影响了运行效率。

单链表

不要求在存储的物理路径上的位置相邻。

优点:由于是不需要物理位置的相邻,所以在插入和删除时,不需要对数据进行移动。

缺点:同时失去顺序表的优点,就是查找元素的没有那么方便,也失去可随机存储的优点。

三、栈和队列

栈和队列也是线性结构,线性表、栈和队列这三种数据元素以继数据元素间的逻辑完全相同,差别是线性表的操作不受限制。

但是栈和队列的操作受到限制,

的操作只能在一端进行

队列插入操作在表的一端进行,而其他操作在另外一端进行。

所以我们将栈和队列称之为受限制的线性表。

栈(顺序栈、链栈)

操作在限定在表的尾端进行的线性表,标为由于要进行插入、删除等操作... 具有特殊含义,所以我们把表尾称之为栈顶

他的另一端是固定的,叫栈底

当栈中没有数据元素的时候,我们叫做空栈

顺序栈

用一片连续的存储空间来存储栈中的数据元素。使用一维数组来存放顺序栈中的数据元素,栈顶指示器 top 设在数组下标为 0 端。

链站表

栈另外一种存储是链式存储,这样的栈称之为链栈。

存储原理:将新来的数据指向栈顶,让头节点指向新来的数据。让新来的节点成为头节点。

队列(顺序队列,链式队列)

队列是指插入操作限定在表的尾部而其他操作限定在表的头部进行线性表,把进行插入操作的表尾称为队尾(Rear),把进行其他操作的头部称之为对头(Front)。在队列中没有数据元素时称之为空队列。

顺序队列

使用一片连续的存储空间来存储队列中的数据,这样的队列称之为顺序队列。

链队列

链队列也是只在一端进行,为了操作方便,把对头设在链表的头部,并且不需要头节点。

只需要在队首和队尾操作,中间不能删除和插入,以此到达简化效果。

四、回文

回文是指一个 字符序列 以 中间字符 为基准两边字符完全相同。 如:ACBD E DBCA .

判断回文的思想

判断一个字符串序列是否有回文,就是把第一个字符与最后一个字符相比较,第二个字符和倒数第二个字符比较。就是 第 i 个字符与第 i-1 字符比较。

设计构思

将数据存储到两个不同的数据类型中。存到 队列 如:1235321

队列:存储数据的时候是顺序依次存储的。

[0] 1,[1] 2,[2] 3,[3] 5,[4] 3,[5] 2,[6] 1 . 取数据的时候 从头下标 [0] [1] [2] ... 开始取

栈:由于先放的数据在栈底,取数据的时候从头开始取。

[0] 1,[1] 2,[2] 3,[3] 5,[4] 3,[5] 2,[6] 1 . 取数据的时候 从尾下标 [6] [5] [4] ... 开始取


总结 

数据结构分类

集合:数据只是存储在同一个"集合"中,其中数据没有任何关系。

线性结构:有着先后顺序,元素中一对一的关系。

树形结构:以一点为根,随其发散。

图壮结构:数据与数据之间关系复杂。

什么是算法呢?

算法可以理解为,有基本运算及规定的运算顺序所构成的完整解题步骤。或者按照要求设计好的有限的确切的计算序列。

算法和数据结构之间的关系?

数据结构可以认为是数据在程序中的存储结构,和基本数据操作。

算法可以是认为解决问题的,算法设计与数据结构的。

数据结构是问题的核心,是算法的基础。

本文记录学习时JSON,线性表,栈和队列,回文以及数据结构的简单介绍。

 代码仓库:https://gitee.com/CJ_HGX/algorithm.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你小子在看什么……

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值