随笔分类 - 数据结构与算法
摘要:本文记录二叉树的数据结构定义及基本操作的算法描述,并对算法进行简单应用。 采用C语言实现。 源程序 //BiTree.c #include <stdio.h> #include <stdlib.h> //二叉树的数据结构定义 typedef char ElemType; typedef struct
阅读全文
摘要:本文记录单链队列(队列的链式存储结构)的数据结构定义及基本操作的算法描述,并对算法进行简单应用。 采用C语言实现,其中应用了少数C++特性,比如引用等。 源程序 //LinkQueue.cpp #include <stdio.h> #include <stdlib.h> #define MAXQSI
阅读全文
摘要:本文介绍几种常用的排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序。 冒泡排序 冒泡排序(Bubble Sort):它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已
阅读全文
摘要:1. 什么是堆、大顶堆和小顶堆 堆是一种非线性结构,可以把堆看作一棵二叉树,也可以看作一个数组,即:堆就是利用完全二叉树的结构来维护的一维数组。 堆可以分为大顶堆和小顶堆: 大顶堆:每个结点的值都大于或等于其左右孩子结点的值。 小顶堆:每个结点的值都小于或等于其左右孩子结点的值。 用简单的公式来描述
阅读全文