
数据结构
文章平均质量分 62
onion____
这个作者很懒,什么都没留下…
展开
-
栈和队列-算术表达式的求值
【实验目的】通过上机实践掌握队列和栈的顺序存储结构和链式存储结构,以便我们能在相应的应用问题中正确选用它们;掌握栈和队列的特点,即先进后出与先进先出的原则;掌握栈和队列的基本运算,如入栈和出栈、入队与出队等运算在顺序存储结构和链式存储结构上的实现。【实验内容】实验题目一:算术表达式的求值【实验步骤】1.设计一个程序演示用算符优先法对算术表达式的求值过程。2.以字符序列形式从终端输入语法正确的、不含变量的整数表达式。利用课本3.2.5节中给出的算符优先关系,实现原创 2010-07-06 13:12:00 · 5339 阅读 · 1 评论 -
[C/C++] 构造最优二叉树-赫夫曼(哈夫曼、Huffman)树算法实现
一、基本概念1、赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶子结点的带权路径长度之和称为该树的带权路径长度,通常记为:2、两结点间的路径:从一结点到另一结点所经过的结点序列;路径长度:从根结点到相应结点路径上的分支数目;树的路径长度:从根到每一结点的路径长度之和。3、深度为k,结点数为n的二叉树,当且原创 2010-11-16 10:23:00 · 8061 阅读 · 3 评论 -
[C/C++] 先序建立二叉树| 先序、中序、后序遍历二叉树| 求二叉树深度、节点数、叶节点数 算法实现
/* * BinTree.h */#define TRUE 1#define False 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status; //Status是函数的类型,其值是函数结果状态代码/* 定义二叉树结点类型 */typedef char ElemType;/* 定义二叉树的数据结构 */typedef st原创 2010-11-09 08:39:00 · 4455 阅读 · 0 评论 -
归并排序 MergeSort C语言实现
#include #include void Merge(int *src, int *des, int begin, int mid, int end){ int i, j, k; for(j=mid+1, k=begin, i=begin; i原创 2010-12-19 10:59:00 · 1427 阅读 · 1 评论 -
数据结构算法在线动态演示
<br />废话少说,先上链接<br />http://www.tyut.edu.cn/kecheng1/site01/suanfayanshi/default.asp<br /> <br /> <br />在线动态演示 很好~原创 2010-12-13 16:43:00 · 2287 阅读 · 0 评论 -
单链表逆置(就地逆序) C语言实现
<br />LinkList.h<br />#ifndef LINKLIST_H#define LINKLIST_H typedef int ElemType;typedef struct LNode{ ElemType *data; struct LNode *next; int length;}LNode, *LinkList;LinkList initList();void insertList(LinkList l, ElemType *data, int原创 2010-12-14 22:37:00 · 5206 阅读 · 0 评论 -
折半查找 binarySort C语言实现
#include using namespace std;int a[] = {0, 3, 2, 1, 5, 7, 4};int main(){ int i, j, low, high, m, size, temp; size = sizeof(a)/sizeof(int); //从第二个开始向左(前)查找 for(i=1; ihigh+1; j--) { a[j] = a[j-1]; } a[high+1] = temp; } for(i=原创 2010-12-11 17:10:00 · 851 阅读 · 0 评论 -
快速排序 QuickSort c语言实现
#include using namespace std;int a[] = {223, 1, 32, 12, 4, 6, 3};int partition(int *a, int low, int high){ int pivotkey, temp; //privotkey 对称轴; pivotkey = a[low]; while(low pivotkey) high--; a[low] = a[high]; while(low原创 2010-12-12 15:28:00 · 1164 阅读 · 0 评论 -
二叉排序树 C语言实现
BST.H#ifndef _BST_H#define _BST_H#define NONE -1typedef enum{FALSE, TRUE}Status;typedef int ElemType;typedef struct _tNode{ ElemType data; struct _tNode *lChild; struct _tNode *rChild;}TreeNode, BST;BST *initBST();Status searchBST(B原创 2010-12-11 17:04:00 · 1197 阅读 · 0 评论 -
转 怎样才算熟练掌握数据结构、常用算法?
节约版------------------------------------------------------bigbug9002:不可能都完全记住那么多的算法. 常用算法,拿过来就可以写出来 不常用的,拿起书来,看10分钟,就能理解算法(因为以前记过). 对以前没有记过的算法,就不好说了,难的可能要研究好几天. 这样就可以了. 应该熟练掌握的常用的算法应该有: 各种排序算法(插入排序、冒泡排序、选择排序,快速排序,堆排序,归并排序) 线性表(一般的线性表,栈,队列)的插入和删除 二叉树转载 2010-11-28 00:50:00 · 2296 阅读 · 2 评论 -
图邻接表C语言实现 拓扑排序
ALGpraph.h#pragma once/************************************************************************/ /* 图的邻接表存储结构 */ /************************************************************************/ #define原创 2010-11-26 14:40:00 · 4403 阅读 · 0 评论 -
图的邻接表存储 深度优先遍历 广度优先遍历 C语言实现
<br />ALGraph.h<br />#pragma once#include "Queue.h"/************************************************************************/ /* 图的邻接表存储结构 */ /*****************************************************原创 2010-11-26 11:06:00 · 8327 阅读 · 2 评论 -
图的邻接矩阵存储 深度优先遍历 广度优先遍历 C语言实现
<br />MGraph. h<br />#pragma once#include "Queue.h"#define MaxVertexNum 100typedef char VertexType;typedef int EdgeType;typedef struct { VertexType vexs[MaxVertexNum]; EdgeType edges[MaxVertexNum][MaxVertexNum]; int n; //当前图顶点数 int e; /原创 2010-11-26 11:08:00 · 9892 阅读 · 0 评论 -
堆排序 HeapSort C语言实现 附严蔚敏数据结构P282 代码错误
严蔚敏数据结构P282 代码与P281图示不符 应改为如下#include #include int a[] = {49, 38, 65, 97, 76, 13, 27, 49};void HeapAdjust(int *a, int s, int m){ int temp, i; temp = a[s]; for(i=2*s+1; ia[i+1]) //i为较小数的下标 严蔚敏数据结构P282 伪代码注释为“J为KEY较大的记录的下标” 应该为“J为KEY较小……” 相应原创 2010-12-22 13:48:00 · 2573 阅读 · 4 评论