随笔分类 -  数据结构

摘要:首先你需要弄明白,栈内有效元素是怎么定义的:就是栈底指针到栈顶指针之间的元素才是有效元素,现在把两个指针重合,那么栈顶和栈底之间距离为0,也就没有有效元素了。没有有效元素的栈自然就认为是空的了。销毁栈的时候,开辟的数组空间是不是malloc动态申请的?挂载在s.base这个指针上的?像这样:s.ba 阅读全文
posted @ 2017-09-08 21:48 raye 阅读(594) 评论(0) 推荐(0)
摘要:思想:根据完全二叉树的定义,对完全二叉树按照从上到下、从左到右的层次遍历,应该满足一下两条要求: ●某节点没有左孩子,则一定无右孩子 ●若某节点缺左或右孩子,则其所有后继一定无孩子 若不满足上述任何一条,均不为完全二叉树。 阅读全文
posted @ 2017-04-23 12:30 raye 阅读(1211) 评论(0) 推荐(0)
摘要:#include<malloc.h> #include<stdlib.h> #include<stdio.h> #define MAXSIZE 100 typedef struct node { char data; struct node*lc; struct node*rc; }Node, *B 阅读全文
posted @ 2017-04-21 18:56 raye 阅读(2497) 评论(0) 推荐(0)
摘要:#include <iostream> #include <cstdio> #include <stdlib.h> #include <algorithm> using namespace std; int main() { int a[120]; int k, m; while (1) { cou 阅读全文
posted @ 2017-04-15 19:27 raye 阅读(3980) 评论(0) 推荐(0)
摘要:(1)首先,需要分配2个栈,栈s1用于临时存储运算符(含一个结束符号),此运算符在栈内遵循越往栈顶优先级越高的原则;栈s2用于输入逆波兰式,为方便起见,栈s1需先放入一个优先级最低的运算符,在这里假定为'#'; (2)从中缀式的左端开始逐个读取字符x,逐序进行如下步骤: 1.若x是操作数,则分析出完 阅读全文
posted @ 2017-04-15 18:49 raye 阅读(1318) 评论(0) 推荐(0)
摘要:试设计一个算法,将数组A中的元素A[0]至A[n-1]循环右移k位,并要求只用一个元素大小的附加存储,元素移动或交换次数为O(n). 分析:我们看这个数组123456,循环右移2位。先将数组逆序,654321,交换3次,然后交换前两个,564321,然后右面四个数字逆序,则561234,交换2次,正 阅读全文
posted @ 2017-04-15 14:16 raye 阅读(2693) 评论(0) 推荐(0)