数据结构
文章平均质量分 72
yanyang已存在!
这个作者很懒,什么都没留下…
展开
-
排序算法-1
3---直接插入排序(1)基本操作:将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表;(2)代码实现:#include<iostream>using namespace std;typedef int ElemType;//3---直接插入排序void InsertSort(ElemType* ar,int len){ for (int i = ...原创 2018-07-08 11:28:57 · 157 阅读 · 0 评论 -
排序算法-2
1---希尔排序(1)由于直接插入排序在记录本身就是基本有序的情况下,我们只需要少量的插入操作就可以完成整个记录的排序工作,此时直接插入效率较高。于是,我们希望对直接插入排序进行改进来提高效率;*将原本有大量记录数的记录进行分组。分割成若干个子序列,此时每个子序列的记录个数就比较少,然后在这些子序列内分别进行直接插入排序,当整个序列都基本有序时,注意只是基本有序时,再对全体记录进行一次直接插入排序...原创 2018-07-09 19:09:17 · 144 阅读 · 0 评论 -
两个栈实现一个队列和两个队列实现一个栈
栈的特性:先进后出(FILO); 队列的特性:先进先出(FIFO)1、两个栈实现一个队列(1)思路:入栈时,直接压入栈1中;如果栈1满了,判断栈2是否为空,若为空,则将栈1元素全部倒入栈2,再入栈;若栈2不 为空,则不能再入元素; 出栈时,判断栈2是否为空,若栈为空,则将栈1中的元素倒入栈2,否则直接弹出栈2中的元素...原创 2018-07-09 21:46:10 · 159 阅读 · 0 评论 -
二叉树---2
1、二叉树的非递归遍历(1)非递归先序遍历 :(根--左---右) 思路:根据先序遍历访问的顺序,优先访问根结点,然后再分别访问左孩子和右孩子。即对于任一结点,其可看作是根结点,因此可以直接访问,访问完之后,若其左孩子不为空,按照相同规则访问它的左子树;当访问其左子树完,再访问它的右子树; 对于任一结点: (1)访问结点ptr,并将结点ptr入栈; (2)判...原创 2018-07-10 11:11:10 · 208 阅读 · 0 评论 -
二叉树---1
一、二叉树二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的,分别称为根结点的左子树和右子树的二叉树;二、二叉树的性质(1)性质1:在二叉树的第i层上至多有个结点(2)性质2:深度为k的二叉树至多有个结点(k≥1)(3)性质3:对任何一颗二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则no=n2+1;...原创 2018-07-06 19:25:43 · 217 阅读 · 0 评论