数据结构
LuciusZhao
这个作者很懒,什么都没留下…
展开
-
队列的表示与实现
队列是先进先出的(FIFO)的线性表,在具体应用中通常使用链表或者数组实现;只允许在一端插入,在另一端删除;在队列中允许插入的一端叫队尾,允许删除的一端叫队头;原创 2017-08-02 19:31:46 · 1671 阅读 · 0 评论 -
排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
插入排序有直接插入排序、折半插入排序、希尔排序等直接插入排序;直接插入排序的核心是不断将后面的数字,不断插入前面已经排好序的数列中;在进行插入排序时需要不断将需要插入的元素与前面已经排好序的元素进行比较,并不断将已排好序的元素后移。原创 2017-08-02 19:47:21 · 874 阅读 · 0 评论 -
顺序栈的表示与实现
顺序栈的表示与实现原创 2017-07-27 18:00:47 · 1042 阅读 · 1 评论 -
使用栈实现进制转换、括号匹配的检验、行编辑程序
使用栈实现进制转换、括号匹配的检验、行编辑程序原创 2017-08-02 20:14:03 · 837 阅读 · 0 评论 -
归并排序(Merge Sort)
归并排序(Merge Sort)是建立在归并操作上的一种有效的排序算法,效率为O(n log n);该算法是采用分治法一种典型的应用,且各层分治递归可以同时进行。原创 2017-08-04 08:52:23 · 793 阅读 · 0 评论 -
快速排序(Quick Sort)
快速排序可以理解为:快速排序=挖坑填数+分治算法;快速排序(Quick Sort)使用分治法(Divide and conquer)策略来把一个序列分为两个子序列,左右两个序列分别大于基准数和小于基准数,递归结束后所有的数都将有序;步骤为:从数列中选出一个元素,作为基准(pivot)将数列中比基准小的数放在基准前面,将数列中比基准大的数放在基准的后面;在这一次分割结束后将基准放在中间的位置。原创 2017-08-04 08:44:43 · 650 阅读 · 0 评论 -
线索二叉树
使用二叉树作为存储结构时,只能找到结点的左、右孩子的信息,而不能直接得到结点的前驱和后继的信息;在有n个结点的二叉树中有n+1个空指针,利用这n+1个空指保存前驱和后继的信息;若结点有左子树,则其lChild指向其左孩子,否则指向其前驱;若结点有右子树,则其rChild指向其右孩子,否则指向其后继;为避免结点指向前驱与后继发生混淆,则在结点上增加两个标志域。以这种结点结构构成的二叉链表作为二叉树的存原创 2017-08-11 22:17:33 · 714 阅读 · 0 评论 -
PAT甲级1005. Spell It Right
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.Input Specification:Each input file contains one test case. Each cas原创 2017-07-28 10:45:17 · 287 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历
二叉树的结构体typedef struct binaryTree { char item; struct binaryTree *lChild; struct binaryTree *rChild;}binaryTree, *pBinaryTree;二叉树的初始化创建,二叉树创建的过程中按照先序遍历的方式输入一颗满二叉树,缺失的节点元素使用#补足;构建的过程中先递归创建左子原创 2017-07-28 11:36:48 · 328 阅读 · 0 评论