
算法/数据结构
文章平均质量分 76
超级土豆
码工
展开
-
二叉堆(优先队列)
<br />/*===========*/ | binheap.h |/*===========*/#ifndef _BINHEAP_H_#define _BINHEAP_H_#define ElementType int#define MinPQSize 2#define MinData -10000typedef struct HeapStruct { int Capacity; int Size; ElementType * Elements;原创 2010-06-25 13:05:00 · 750 阅读 · 0 评论 -
单链表一次遍历反序
《编程之美》有这样一个例子,单链表在不告诉头指针的情况下完成删除指定节点的方法, 代码如下: pCurrent->next = pNext->next; pCurrent->data = pNext->data; delete pNext; 扩展问题为编写一个函数,给定一个链表的头指针,要求遍历一次,将单链表中的顺序反过来。#include#include/////////////typedef struct Node原创 2011-03-06 17:27:00 · 1759 阅读 · 0 评论 -
网格算法
<br />网格是把整个因特网整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。当然,网格并不一定非要这么大,我们也可以构造地区性的网格,如中关村科技园区网格、企事业内部网格、局域网网格、甚至家庭网格和个人网格。事实上,网格的根本特征是资源共享而不是它的规模。它应用到不同领域又叫计算网格、信息网格、知识网格、服务网格等。 <br /><br />由于网格是一种新技术,因此具有新技术的两个特征:其一,不同的群体用不同的名词来称谓它;其二,网格原创 2011-01-25 10:19:00 · 2132 阅读 · 0 评论 -
关于循环移位的高效算法
<br />/*-------------------------------------------------------------------*/ | --author : zhangdy | | --date : 2010-08-17 | | --note:原创 2010-08-17 15:37:00 · 845 阅读 · 0 评论 -
B树C语言实现
<br />/*====================*/ | BTree.h |/*====================*/#ifndef _BTREE_H_#define _BTREE_H_#define NUM 3#define KeyType int#define Status inttypedef struct BTNode { int keynum; struct BTNode * parent; KeyType k原创 2010-06-22 13:20:00 · 3608 阅读 · 1 评论 -
AVL树的实现
avl树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。当在一棵avl树中插入节点的时候,很可能把avl树的平衡给破坏掉,在不平衡的情况下,可以通过对树做单次旋转或者复杂些的双旋转来处理。具体的旋转方法Google去 O(∩_∩)O,这里就不做详细介绍啦。下面仅给已实现的avl树的代码。/*====================*/ | AvlTree.h |/*====================*/#ifndef _AVL_TREE_H_#define原创 2010-06-17 17:09:00 · 644 阅读 · 0 评论 -
查找树ADT-二叉查找树
<br />/////////////////////////////// tree.h /////////////////////////////////#ifndef _TREE_H_#define _TREE_H_#define ElementType intstruct TreeNode;typedef struct TreeNode * Position;typedef struct TreeNode * SearchTree;SearchTree MakeE原创 2010-06-13 10:01:00 · 651 阅读 · 0 评论 -
表达式树
<br />栈的实现及中缀表达式到后缀表达式的实现代码参看之前的日志。<br /> <br />//>>>>>>mocro.h#ifndef _MACRO_H_#define _MACRO_H_#define EmptyTOS (-1)#define MinStackSize (5)#define ElementType int#endif//>>>>>>struct.h#ifndef _STRUCT_H_#define _STRUCT_H_#in原创 2010-06-12 14:08:00 · 561 阅读 · 0 评论 -
中缀转后缀表达式(栈实现)
一个简单的中缀表达式转后缀后缀,复杂的原理相同。用栈实现。#include#include#define STACK_SIZE 20#define NUM_COUNT 20#define SYMBOL_COUNT 20/*-------------- stack ---------------*/typedef struct stack{ int top; int a[STACK_SIZE];}stack;stack * c原创 2010-06-10 21:10:00 · 1032 阅读 · 0 评论 -
栈
<br />/* Name: stack.c Copyright: personal Author: hojor Date: 07-06-10 10:22 Description: stack*/#include <stdio.h>#include <stdlib.h>#include "stack.h"#define EmptyTOS (-1)#define MinStackSize (5)#define ElementType int原创 2010-06-08 13:49:00 · 665 阅读 · 0 评论 -
基数排序
/*********************/ * 基数排序(桶排序)* /*********************/#include#include#include#include//struct of nodetypedef struct node{ int num; struct node * next;}NODE; /*!next)temp=temp->next; NODE * newno原创 2010-06-04 10:33:00 · 493 阅读 · 0 评论 -
求某天是星期几
<br /> /*====================================*/ | 求某天是星期几 /*====================================*/#include<stdio.h>#include<stdlib.h>char * name[] = { "monday" , "tuesday" , "wednesday" ,原创 2010-06-03 11:01:00 · 1103 阅读 · 0 评论 -
排序算法汇总
<br />转自http://hi.baidu.com/liulife/blog/item/eee9a359dc9bb22f2934f0e4.html<br /> <br />常见排序算法(C)<br />//排序方法|最好时间 |平均时间 |最坏时间 |辅助空间|稳定性//<br />//------------------------------------------------------//<br />//直接插入| O(n) | O(n^2) | O(n^2) | O(1)原创 2010-06-03 09:49:00 · 512 阅读 · 0 评论 -
最大子序问题的联机算法
#include#include/*!/func int MaxSubsequenceSum(const int a[],int n) */bref the problem about the max sum of subsequence */para[in] a[] : the sequence */para[in] n : the number of sequence */author zhangdy */dat原创 2010-06-03 09:30:00 · 567 阅读 · 0 评论 -
螺旋矩阵
自己写的一个螺旋矩阵的算法,感觉好笨,呵呵,还没想出好办法来,感觉肯定有个很简洁的算法来实现。#include#includevoid SpiralMatrix(int start,int n){ int sm[n][n],i,j; i=j=0; memset(sm,0,sizeof(sm)); int m = n -1 ; for(i=0;i { for(j=i;j { sm[i][j]=start;原创 2010-06-03 09:20:00 · 536 阅读 · 0 评论 -
输出第二个字符串在第一个字符串中的链接次序
/*描述:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的链接次序,即输出125,126,145,146*/#include #include #include using namespace std; listlist1; void findLink(const char*p1,const char*p2,int i,in转载 2012-05-28 17:01:56 · 1147 阅读 · 0 评论