data structure
文章平均质量分 65
jakzon_245
这个作者很懒,什么都没留下…
展开
-
简单的单链表(含错)
我发现这个链表建的有问题。那个rear指针指的是第100个结点,当第十个结点为表尾(非真正表尾)而插入样例中的第11个结点时,其实是将此节点插到了第101的位置……所以输出时“表尾”数据不是真正表尾数据。样例输入:10 2001 M 2002 F 2003 M 2004 F 2005 M 2006 F 2007 M 2008 F 2009 M 2010 F 1 10 20原创 2012-08-06 17:50:13 · 609 阅读 · 0 评论 -
表达式求值
#include #include #include using namespace std; //two steps solving the problem:1.transfer the infixexpression to the postfixexpression // 2.using a stack to calculate the value of the infixexperssion原创 2012-09-26 21:54:31 · 578 阅读 · 0 评论 -
floyd算法解xtu_exam 1019(错解……)
为什么WA了? #include #include #include #include #define MA 0x5fffff using namespace std; void floyd(int d[21][21],int n){ int i,j,k; for(i=0;i<n;i++){ for(j=0;j<n;j++) fo原创 2012-08-24 21:41:29 · 489 阅读 · 0 评论 -
xtu_exam 1018 最小生成树
说明:此次作业只为熟悉两种求最小生成树的算法:prim算法(第一次写,邻接表实现,发现写起来也比较简单) 和kruskal算法(这个算法的并查集版本写了好几遍了) 要注意的是当使用表达式做角标时,一定要注意对应关系。。。 code: #include #include #include #define N 1000001 #define M 0x7fffffff using nam原创 2012-08-24 18:28:01 · 516 阅读 · 0 评论 -
根据前序、中序遍历重构二叉树
本文来源 【前言】 这个选题源自课上的一个习题,题目提供了二叉树的前序遍历和中序遍历,要求出整个二叉树。刚一做这道题时,还有些迷惑。但是,既然答案是确定的,就一定存在着算法,来求出这个二叉树。经过一些摸索,最终确定了求解算法。 【分析】 二叉树的遍历一共有四种方法,分别是前序遍历、中序遍历、后续遍历和层序遍历。各种方法各有特点,但是中序遍历的特点最好利用。 中序遍历是先遍历左子树,转载 2012-09-01 16:39:03 · 946 阅读 · 0 评论 -
dfs遍历图 xtu-exam1015
目前只接触过用dfs遍历邻接表建立的图,写递归的dfs时应注意两点: 1.深度优先遍历,但还要遍历相邻的点;2.判断指针空与否来判断某点是否还有相邻点。 这道题是给一张图,要求判断其是否连通。直接建图再dfs就好。其中优化就是:如果有度为0的点就标记,忽略建图和dfs过程,此时已有结论。 xtu链接 代码: #include #include #define N 100011原创 2012-08-15 21:36:17 · 1013 阅读 · 1 评论 -
二叉树的建立及遍历(前、中、后序) xtu-exam 1004
呵呵,忙了一下午加一晚上终于把它一次性A了! 主要遇到的问题是:1.对二叉树的遍历(前序、中序、后序)不熟悉,包括递归和非递归写法…… 2.在非递归建立二叉树过程中一直在犹豫,,,没有分类清楚(当左子树存在时就该一直左左左地建立它,当不存在左子树时,就应该弹出栈,开始考虑最新的右子树,当初原创 2012-08-14 23:18:39 · 846 阅读 · 0 评论 -
树的存储结构
一、双亲表示法: 树中每个结点都有唯一一个父结点(根结点无),因此可定义一个包含两个成员的结构体:其一记录结点值,另一记录父节点(值或编号……),以此可建立一棵树: #define SIZE 20 type struct{ char data; int par; }node; type struct{ node tree原创 2012-08-11 17:04:26 · 754 阅读 · 0 评论 -
暴力字符串匹配
int Index(SString S,SString T,int pos){ //返回子串T在主串S中第pos个字符之后的位置,若不存在,则函数值为0 //其中,T非空,1<=pos<=strlen(S) i=pos; j=1; while(i<=S[0]&&(j<=T[0])){ if(S[i]==T[i]){原创 2012-09-26 22:20:10 · 705 阅读 · 0 评论