kelvinmao的博客

Don't be evil

二叉树顺序存储的实现

在实现二叉树的顺序存储的过程中,遇到了一些问题,现记录如下:#include<stdio.h> #include<stdlib.h> #include<math.h> #define OK 1 #define ERROR 0 #define TRUE 1 #de...

2016-04-30 20:25:59

阅读数 3683

评论数 0

对于C语言free()函数的一些反思

上周在解决一道课后习题的时候,偶然间发现了一个自己从未注意过的问题,问题描述如下: 在遍历一个循环链表时,我发现在我调用free()函数删除了一个节点之后,仍然能用printf打印出原先的数据,起初我以为是巧合,并未加以注意。今天我又尝试free其他节点,之后仍然能够通过printf打印出原先的值...

2016-04-27 10:53:12

阅读数 2012

评论数 0

数据结构与算法习题汇总(4)

一. 用rear,front表示队尾和队首指针,实现循环队列入队,出队算法/*入队列*/ status enterqueue(queue *Q,elemtype data){ if((Q->rear+1)%maxsize==Q->front){ printf(...

2016-04-27 10:36:33

阅读数 470

评论数 0

借助栈实现表达式的计算

这两天要复习准备考试,博客没有及时更新。另一方面,后缀表达式的转化及求值的程序始终没有写好,让我异常苦恼,心情也是莫名烦躁。现在表达式求值的程序已基本实现,仍有不足之处需要改进,各位可以参考,由于时间关系,无法细致讲解。将在考完试后的更新中加以补充,各位先看代码后的注释吧,注释还是比较详细的,代码...

2016-04-20 23:40:11

阅读数 342

评论数 0

数据结构与算法习题汇总(3)

Q:判断一字符串是否为回文 A:对于这种要求输入和输出相反的情况,一般采用栈来解决,对于此题,只需将正序的字符串压栈再将其全部弹出栈,判断是否相同即可,代码如下:#include<stdio.h> #include<stdlib.h> #define OK 1 #defi...

2016-04-13 22:04:37

阅读数 805

评论数 0

栈的思想用于求解迷宫问题

迷宫问题是一个经典的问题,当迷宫规模较大时,手工求解是十分困难的,所以用善于进行重复繁琐计算的计算机来求解便十分合适。基本思想和解决“八皇后问题” 的思想一致,都是利用回溯法。从入口开始,探索每一个迷宫中没有被墙挡住的位置,如果该位置可以移动到下一个位置,则标记该位置已被探索过并入栈;如果不能移动...

2016-04-08 22:14:41

阅读数 736

评论数 0

栈用于解决括号匹配问题

在编写程序的过程中,我们经常需要对一串括号是否匹配进行判断。如何判断呢?我们可以借助栈来进行判断。基本思路是:遍历字符串,当发现有右括号而此时的栈顶元素又恰好是与之匹配的左括号时,则栈顶元素出栈;其余情况全部入栈,代码如下: #include<stdio.h> #include<...

2016-04-07 23:01:26

阅读数 3591

评论数 0

双向链表的应用—实现根据使用频率安排元素位置的功能

在平时使用音乐播放器时,播放列表中的歌曲可以很方便地进行增添,删除,去重等操作。但其本质都可以抽象成一个双向链表。为了更方便用户的使用,我认为还可以增加一个将最常播放的音乐放在播放列表的头部的功能,那么如何实现呢?请看代码: #include<stdio.h> #include<...

2016-04-04 12:56:09

阅读数 1703

评论数 0

数据结构算法设计题汇总(2)

一.向一个已经排好序的链表中插入新元素并保持有序A:我的思路是,定义p作为游标在链表上移动,直到某个节点的数据域大于待插入元素为止,代码如下:/*保持递增的顺序插入新元素*/ status insertinorder(linklist l,elemtype e){ linklist p=l...

2016-04-04 12:02:20

阅读数 1244

评论数 0

回溯法和栈的思想用于“八皇后问题”的求解

八皇后问题是一个经典的问题,其核心是:在n*n的棋盘上,有n个皇后,这些皇后必须位于不同行不同列上,并且不能处于同一对角线上,否则会因相互攻击而死亡。那么如何安排皇后们的位置呢? 我们可以利用回溯法,先确定第一个皇后的位置,之后进入下一行,确定第二个皇后的位置,再之后进入下一行,如果发现找不到一个...

2016-04-03 11:17:28

阅读数 3862

评论数 0

双向链表的建立与基本操作

双向链表比单链表有更好的灵活性,其大部分操作与线性表相同。下面总结双向链表与单链表之间的不同之处及我在实现过程中所遇到的问题。1.双向链表的建立 双向链表在初始化时,要给首尾两个节点分配内存空间。成功分配后,要将首节点的prior指针和尾节点的next指针指向NULL,这是十...

2016-04-02 18:39:40

阅读数 10766

评论数 1

提示
确定要删除当前文章?
取消 删除