数据结构
压丫丫呀
这个作者很懒,什么都没留下…
展开
-
用链表创建栈 以及用数组创建栈的区别
#include#includetypedef struct listnode{ int data; struct listnode * next;}node,*Pnode;typedef struct stack{ struct listnode *top; struct listnode *base; //创建链表的指针}STACK,*原创 2015-07-22 23:23:06 · 818 阅读 · 0 评论 -
归并排序
#includevoid merge(int source[],int temp[],int start,int mid ,int end){ int i,k,j; i=start;k=start;j=mid+1;while(i!= mid+1 && j!=end+1){if(source[i]>source[j])temp[k++]=source[i++];原创 2015-07-21 10:22:06 · 270 阅读 · 0 评论 -
搜索二叉树
/*********************************************************** * 搜索二叉树 *原理:左边的孩子比之前的头都小,右边的孩子比之前的头都大; *思想:利用递归的思想 *遍历:利用 中序 遍历输出的是从小到大的顺序 ******************************************原创 2015-07-28 23:28:10 · 301 阅读 · 0 评论 -
栈的基本
#include //用数组创建栈#include#define stack_init_size 100#define stack_newlenth 100 //新增加的长度struct stack{ int size; int *top; int *base;}s;vo原创 2015-07-16 20:39:09 · 238 阅读 · 0 评论 -
线段树
线段树对于Laxy还是消化了一晚上,才想明白,之前想错了,只希望能学到点,积累点。 query代表查询,build代表建树,updata代表更新,push_down就是laxy,应该是精华的地方吧。 头#include<cstdio>#include<iostream>#include<vector> //包括max函数using namespace std;int tr原创 2015-12-10 00:01:21 · 225 阅读 · 0 评论 -
两个集合的交并集等
/********************** * 两个集合的交并集等 * *要考虑输入重复的情况* * 顺序表实现 * *********************/#include#include#define LISTSIZE 100#define INCREASESIZE 10typedef struct { int * elem; int lengt原创 2016-01-06 18:04:43 · 634 阅读 · 0 评论 -
邻接矩阵的DFS 和 BFS 搜索遍历
队列可以在c++中直接调用,但还是自己敲一遍好了原创 2015-12-22 19:51:13 · 424 阅读 · 0 评论 -
符号三角形问题(回溯法)
import java.util.Scanner;/** * 题:符号三角形问题 * 给定第一行的符号个数,符号只能为+或者 - 问+ 和 - 个数相同的方案有多少种 * example: * ++- * +- * - * 利用回溯法 。当其中一种个数大于一半时 ,不进行下层计算。即剪枝 * 注:二维数组的0列都不要,从第一行,第一列开始算 * * */p原创 2016-11-15 15:51:17 · 3454 阅读 · 0 评论 -
半数集问题(Java)
//半数集问题 2-3<<计算机算法设计与分析--王晓东>>«问题描述:给定一个自然数n,由n 开始可以依次产生半数集set(n)中的数如下。(1) n∈set(n);(2) 在n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3) 按此规则进行处理,直到不能再添加自然数为止。例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6 个元素。原创 2016-12-20 15:05:27 · 853 阅读 · 0 评论