![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构学习心得
Vee_99
编程小白,计算机考研准备中
展开
-
数据结构学习记录—关于使用共享栈实现队列的模拟
今天遇到一道习题:使用两个栈s1和s2模拟实现队列的功能。在此基础上,试写了使用一个共享栈进行一个队列的模拟。基本的设计思路如下:入队:首先判断“队列”是否为满。判断标志为左右栈顶指针差1。队列的入队操作由左栈入栈模拟完成。出队:首先判断“队列”是否非空。判断标志为左右栈均空。当出队时,总体思路是可以通过先将左栈元素出栈,再将该元素入右栈,最后该元素在右栈出栈来...原创 2018-12-01 00:09:17 · 248 阅读 · 0 评论 -
数据结构学习记录(二)——折半查找二叉判定树的画法
以下给出我在学习中总结的一种比较简便的构造折半二叉判定树的思路以及方法:思路分析:在计算mid值时,使用的时mid=(low+high)/2 。这里由于mid为int类型,自动默认为向下取整,因此对于一个长度为n序列进行划分之后的序列为 (0,1,2,……,mid-1)mid(mid+1,mid+2,……n-1),此时出现两种情况:左子序列长==右子序列长 (n=2k+1...原创 2018-12-01 14:13:49 · 55412 阅读 · 35 评论 -
数据结构学习记录(三)——顺序栈的简单实现
简单写了一个顺序栈的实现,代码如下:#ifndef CIRCLE_H#define CIRCLE_H#define MaxSize 50;typedef int ElemType;struct SqStack //定义栈结构{ ElemType data[MaxSize]; int top;};//...原创 2018-12-01 23:50:24 · 306 阅读 · 0 评论 -
数据结构学习记录(四)——二叉树的建立及遍历
考研数据结构学习心得记录,代码水平不高,如有错误,我虚心改正! 二叉树是数据结构中非常重要的一部分,在学习过程中,我一直对于二叉树的实现存在诸多问题(自以为会做实际是眼高手低……),因此特对二叉树的建立以及前中后序三种遍历方法进行总结和练习,层序遍历等写完队列再写。先给出二叉树的结构定义:typedef struct Node{ char elem; BiTre...原创 2018-12-02 00:30:19 · 461 阅读 · 0 评论 -
数据结构学习记录(五)——顺序队列的简单实现
一个最基本的顺序队列的实现。#ifndef CIRCLE_H#define CIRCLE_H#define MaxSize 50;typedef int Elemtype;struct SqQueue{Elemtype elem[MaxSize];int front,rear;};//队列的初始化void InitQueue(SqQueue &Q){ ...原创 2018-12-03 13:05:14 · 289 阅读 · 0 评论 -
数据结构学习记录(六)——顺序循环队列
由于队列会出现假溢现象,所以改进措施是使用循环队列。循环队列就是逻辑上把整个线性表首尾相连,形成一个“环”(实际的物理结构还是一个一维数组)。也就是说当rear和front指针到达MaxSize时,使其重新回到初始位置0(必须是合法的,如队满时不能将rear+1所以不能回到初始位置)。这个操作需要用到取模(取余)运算,将rear和front的值变化后对队列长度MaxSize取模。...原创 2018-12-03 13:42:58 · 410 阅读 · 0 评论 -
数据结构学习记录(七)——链式队列
顺序存储队列会出现假溢现象,因此改进成循环队列,然而循环队列也存在空间不灵活的问题(顺序结构的通病),即有时浪费存储空间(数组定义过大),而有时会空间不够(数组定义太小)。所以出现了链式队列。这里给出一个用单链表定义的存在头尾指针的队列。我写的代码如下:#ifndef CIRCLE_H#define CIRCLE_Htypedef int ElemType;//定义结...原创 2018-12-03 16:50:30 · 450 阅读 · 0 评论