
数据结构与算法
yesNow_xiao
NO picture you say a J8...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
栈
栈的实现一、相关概念1、STACKS栈是线性表的一个版本,元素的插入和删除限制在其栈顶进行,相应的插入和删除也被成为入栈和出栈。栈是一个后进先出的表。二、实现分析1、栈的基本属性<1> count–栈的大小; <2> entry–栈的内容;2、栈的基本运算(1)push:先判断这个栈是否已满,否则将元素推进栈中; (2)pop:判断这个栈是否为空,否则将这个栈中的最后一个元素(栈顶)删除; (原创 2016-11-04 10:49:32 · 2710 阅读 · 0 评论 -
栈的相关应用(一)--数组的反向输出
栈的相关应用(一)一、实现分析这个利用栈的“后进先出”的特性,我们输入一组数,然后通过栈来将这一组数反向输出。这个一个特别简单的案例,大家有兴趣可以看一下。二、用C++实现#include <iostream>#include "stack.cpp" //这里引用的是我们自己先前写的栈的定义文件stack.cpp; using namespace std;main(){ int n;原创 2016-11-04 11:04:26 · 1594 阅读 · 0 评论 -
插入排序之希尔排序
插入排序之希尔排序一、算法思想希尔排序一、希尔排序的思想1、按照如下规则选取排序增量。 d(i) < n; d(i+1) < d(i); d(i)是一个整数;2、把所有元素划分成d(i)组(各组元素之间的距离是d(i))3、对于每一组进行直接插入排序。重复上述过程,直到d(i)=1做完为止。在希尔排序中使用直接插入排序在希尔排序中使用直接插入排序,直接插入排序其实就是将元素原创 2016-12-14 21:37:09 · 649 阅读 · 0 评论 -
插入排序之直接插入排序
插入排序之直接插入排序一、算法思想插入语排序排序过程的每一步将一个待排序的记录按其排序码值的大小插到前面已排好序的部分中的适当位置,直到全部记录插完为止。直接插入排序:使用顺序查找寻找下一个待排元素的位置。算法的伪代码分析:1、默认第一个数组中的第一个元素是已排序(sorted),从第二个元素开始遍历。2、如果数组中的第i元素小于数组第i-1元素,我们才进行比较和移动,这样会极大的减少未排序元素的比原创 2016-12-14 18:20:00 · 629 阅读 · 0 评论 -
二叉树的相关操作
二叉树的相关操作一、二叉树的相关概念1、二叉树的定义一棵二叉树是一个结点的集合,这个集合要么为空,要么满足一下条件:(1) 他仅有一个被称为根的结点;(2) 除了根节点,其他的结点可以分为两个不相交的子集T1和T2,他们也是二叉树,分别叫做根的左子树和右子树。2、二叉树的分类· 满二叉树一棵深度为K且有2^k-1个结点的二叉树称为满二叉树。· 完全二叉树一棵深度为K的完全二叉树,满足以下条件:(1)原创 2016-12-17 13:17:17 · 734 阅读 · 1 评论 -
链表
链表一、相关概念 链表1、为什么要使用链表先从顺序表的缺点说起,顺序表的插入和删除操作时我们需要移动大量的元素。有没有什么办法在执行这些操作的时候,不需要移动这么多的元素呢?链表应运而生。2、链表有若干个结点(元素)组成,每个结点除结点本身的信息外,增加了一个或多个指针字段来表示结点之间的关系。 常见的链表:单链表、双链表和循环链表 这个我们实现的是单链表二、实现分析1、基本属性<1>原创 2016-12-04 17:07:44 · 482 阅读 · 0 评论