data structure
piaopiaopiaopiaopiao
这个作者很懒,什么都没留下…
展开
-
前序、中序、后序表达式
前序、中序、后序表达式的差异主要在于运算符所在位置不同,前序表达式是将运算符卸载两个操作数之前,例如:前序:+XY中序:X+Y后序:XY+通常中序表达式是我们最熟悉的,如中序表达式:X+Y*Z,其前序为:+X[Y*Z]-------->+X*YZ 故其前序为:+X*YZ后序为:X[Y*Z]+-------->XYZ*+ 故其前序为:XYZ*+原创 2014-03-02 19:37:04 · 2124 阅读 · 0 评论 -
栈类C++实现
头文件:#pragma once//用数组实现栈,数组索引为0的位置为栈底,索引top指向栈顶templateclass Stack{public: Stack(int capcity=20); ~Stack(); void ClearStack(); bool isEmpty(); bool isFull(); int StackLength(); T GetTo原创 2014-09-06 22:21:23 · 2790 阅读 · 0 评论 -
C++模板类头文件和实现文件分离的方法
如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关。引用>里的观点:1)标准C++为编译模板代码定义了两种模型:“包含”模型和“分别编译”模型。2)所有编译器都支持“包含”模型,某些编译器支持“分别编译”模型。第一种方法:按C++primer中的“包含”模型,在定义模板类的头文件中的末行用语句:#include "template_compile.cpp"在类模转载 2014-09-06 21:34:03 · 4639 阅读 · 0 评论 -
排序算法C++实现
#include #include using namespace std;#define MERGE_SORTvoid BubbleSort(int a[], int n){ for (int i=n-1;i>0;i--) { for (int j=0;j<i;j++) { if (a[j]>a[j+1]) swap(a[j],a[j+1]); }原创 2014-09-06 15:20:59 · 491 阅读 · 0 评论 -
顺序表类C++实现
头文件:class Linklist{public: Linklist(int capcity); ~Linklist(); void ClearList(); bool isEmpty(); int GetLength(); //返回链表中第pos个元素 int GetElem(int pos); //判断元素e是否存在于链表中,如果存在,返回该元素的位置 bool i原创 2014-09-06 20:00:41 · 2787 阅读 · 0 评论 -
排序小结(C++版)
一、快速排序#include using namespace std;int adjust(int a[],int start,int end){ int i,j; i=start; j=end; int temp=a[i]; while(ij) { while(ia[j]) j--;原创 2014-04-04 13:23:49 · 478 阅读 · 0 评论 -
排序小结(java版)
一、归并排序package org.lxh.demo08.b;class Sort{ private int[] a; private int n; Sort(int n) { a=new int[n]; } Sort(int[] a,int n) { this.n=n;原创 2014-04-04 13:24:29 · 552 阅读 · 0 评论 -
排序小结(C版)
一、快速排序(C源码)#include #include int adjust(int a[],int start,int end){ int i=start; int j=end; int temp=a[start]; while(ij) { while(ia[j]) j--; i原创 2014-04-04 13:22:52 · 476 阅读 · 0 评论 -
堆排序
1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i]&&key>=key[2i+1] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]2.堆排序的思想 利用大顶堆转载 2014-04-02 18:47:35 · 496 阅读 · 0 评论 -
快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速转载 2014-04-02 21:54:23 · 458 阅读 · 0 评论 -
二路归并排序算法
本文转自:http://blog.csdn.net/caryaliu/article/details/7475700将两个按值有序序列合并成一个按值有序序列,则称之为二路归并排序,下面有自底向上和自顶向下的两种排序算法,自顶向下的排序在本文末讲述,使用递归实现,代码较简洁,经供参考。1. 归并子算法:把位置相邻的两个按值有序序列合并成一个按值有序序列。例如把序列 X[s..u] = {3,转载 2014-04-02 21:56:52 · 855 阅读 · 1 评论 -
图形结构源码(do it myself)
1、Kruskal算法#include #include struct list{ int vertex1; int vertex2; int weight; struct list *next;};typedef struct list *edge;#define vertexmax 6 //从下标1存入5点(1~5)#define edgenu原创 2014-03-06 10:41:53 · 602 阅读 · 0 评论 -
八皇后问题
#include #include char Chessboard[8][8]; /* 声明8*8的空白棋盘 *//* ---------------------------------------------------*//* 递归解N皇后问题 */原创 2014-03-06 18:40:50 · 601 阅读 · 0 评论 -
Dijkstra算法
Dijkstra算法图示:原创 2014-03-05 21:22:39 · 711 阅读 · 0 评论 -
图形结构源码
1、将图形转化为多元邻接列表#include #include struct edge{ int vertex1; int vertex2; struct edge *edge1; struct edge *edge2;};typedef struct edge *newedge;struct node{ int vertex; struct edge *next;原创 2014-03-04 19:08:42 · 533 阅读 · 0 评论 -
快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快转载 2014-03-03 14:52:32 · 500 阅读 · 0 评论 -
设计一个可容纳40位数的求n!程序
思想:首先声名一个大小为40的整数型数组,用来存放计算结果。首先将数组中的数据初始化为0,再令第一位为1,数据的位数为1。源码:原创 2014-02-28 22:39:38 · 2535 阅读 · 0 评论 -
环形队列类实现
头文件:#pragma once// 用数组实现环形队列templateclass Queue{public: Queue(int capcity); ~Queue(); void ClearQueue(); bool isEmpty(); bool isFull(); int QueueLength(); void EnQueue(T e); void DeQu原创 2014-09-09 20:20:14 · 754 阅读 · 0 评论