数据结构与算法
文章平均质量分 68
与你相约
一个混迹江湖的小IT男。至今没有什么作为,但是志向远大。
展开
-
判断一个数组是不是二叉树后序遍历的结果
输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10 / \ / \5 7 9 11因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。转载 2012-10-13 13:08:42 · 3324 阅读 · 0 评论 -
括号匹配问题(只考虑小括号)。
#include#include#define TURE 1#define FALSE 0typedef struct node{ char data; struct node *next;}LinkStackNode,*LinkStack;void InitStack(LinkStack *top){ *top=(LinkStack)malloc(sizeof(Link转载 2012-10-13 16:54:45 · 857 阅读 · 0 评论 -
数据结构方法之二分查找法
一、什么是二分查找法?(略)二、二分查找法的性能分析。二分查找法的平均查找长度是ASL=log2(n+1)-1 (n>50)★例题: 对长度为12的有序表(a1,a2,...a12)(其中ai<aj当i<j时),进行折半查找,在假定查找不成功时,关键字xa12以及ai<x<aj(i=1,2,..12)等情况发生的概率相等,求查找不成功的平均查找长度是多少?解答:一、查找不成功事转载 2012-10-13 12:40:32 · 11824 阅读 · 0 评论 -
结构体的sizeof的问题--结构体对齐的问题(整理)
在看我写的这篇资料以前,大家要明白结构体的字节对齐是怎么回事。不明白的到网上自己找,弄懂了再来看我这篇文章。首先要确定所求结构体的最大对齐字节边界数(也就是结构体的对齐字节边界数)。怎么样来求一个结构体的最大对齐字节边界数呢?很简单,先要知道结构体内成员的对齐字节边界数。设编译器设定的最大对齐字节边界数为n,对于结构体中的某一成员member,它相对于结构首地址的实际字节对齐数目X应该满足转载 2012-10-14 09:24:42 · 726 阅读 · 0 评论 -
有4种面值的邮票很多枚,这4种邮票面值分别1, 4, 12, 21,取5张 求取出这些邮票的最大连续组合值。
//有4种面值的邮票很多枚,这4种邮票面值分别1, 4, 12, 21,取5张 求取出这些邮票的最大连续组合值。#include #include #define N 5#define M 5int k, Found, Flag[N];int Stamp[M] = {0, 1, 4, 12, 21};// 在剩余张数n中组合出面值和Valueint Combine(int n,转载 2012-10-15 19:53:22 · 5721 阅读 · 1 评论 -
几种排序的方法
1、冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数原创 2012-10-19 09:18:10 · 869 阅读 · 0 评论 -
一个考察递归的选择题
#includevoid e(int ); main(){ int a; a=3; e(a);}void e(int n){ if(n>0) { e(--n); printf("%d" , n); e(--n); }}这段程序的输出是:(a) 0 1 2 0(b) 0 1 2 1(c) 1 2 0 1(d) 0 2 1原创 2012-10-20 21:52:19 · 711 阅读 · 0 评论 -
在多线程应用程序中使用循环缓冲区高效地进行日志记录
在多线程应用程序中使用循环缓冲区高效地进行日志记录如何在您的应用程序中查找并分析错误转自:http://www.ibm.com/developerworks/cn/aix/library/au-buffer/?S_TACT=105AGX52&S_CMP=techcto#ibm-pconMohan K Jadhav (mohan.jadhav@in.ibm转载 2013-04-30 10:44:58 · 869 阅读 · 0 评论