算法数据结构
kelvinmao
这个作者很懒,什么都没留下…
展开
-
单链表常见习题及C语言实现(持续更新)
这两天在学习单链表,遇到了一些问题,在这里加以整理记录,以便复习0.单链表的反序 (solved)1.求单链表倒数第N个数(solved)3.求中间结点 (solved)3.给单链表建环 (solved)4.检测单链表是否有环 (solved)5.给单链表解环6.检测两条链表是否相交 (solved)7.不输入头节点,删除单链表的指定节点(只给定待删除节点指针)0.单链表的反序 (solved)s原创 2016-03-15 23:21:35 · 3881 阅读 · 2 评论 -
栈用于解决括号匹配问题
在编写程序的过程中,我们经常需要对一串括号是否匹配进行判断。如何判断呢?我们可以借助栈来进行判断。基本思路是:遍历字符串,当发现有右括号而此时的栈顶元素又恰好是与之匹配的左括号时,则栈顶元素出栈;其余情况全部入栈,代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#de原创 2016-04-07 23:01:26 · 4731 阅读 · 0 评论 -
线性表的顺序存储---习题
今天完成了一些与线性表相关的习题,总结如下Q1:设顺序表有10个元素,其元素类型为整型。 设计一个算法,以第一个元素为分界线,将所有小于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面;A:此为数据结构老师在课堂上提出的一个问题,如果了解快速排序算法的原理,此题便十分简单,只需将快速排序最后的两次递归去掉即可。 代码如下(条件是已知顺序表l存在)status divide(sqlist原创 2016-03-26 15:01:47 · 4249 阅读 · 0 评论 -
回溯法和栈的思想用于“八皇后问题”的求解
八皇后问题是一个经典的问题,其核心是:在n*n的棋盘上,有n个皇后,这些皇后必须位于不同行不同列上,并且不能处于同一对角线上,否则会因相互攻击而死亡。那么如何安排皇后们的位置呢?我们可以利用回溯法,先确定第一个皇后的位置,之后进入下一行,确定第二个皇后的位置,再之后进入下一行,如果发现找不到一个位置安排新皇后,则回退到上一行,将上一行的皇后向后移动一列,再考虑下一行的皇后,如此循环,直到安排好所有原创 2016-04-03 11:17:28 · 4466 阅读 · 0 评论 -
双向链表的应用—实现根据使用频率安排元素位置的功能
在平时使用音乐播放器时,播放列表中的歌曲可以很方便地进行增添,删除,去重等操作。但其本质都可以抽象成一个双向链表。为了更方便用户的使用,我认为还可以增加一个将最常播放的音乐放在播放列表的头部的功能,那么如何实现呢?请看代码:#include<stdio.h>#include<stdlib.h>#include<time.h>#define OK 1#define ERROR 0#defi原创 2016-04-04 12:56:09 · 2145 阅读 · 0 评论 -
栈的思想用于求解迷宫问题
迷宫问题是一个经典的问题,当迷宫规模较大时,手工求解是十分困难的,所以用善于进行重复繁琐计算的计算机来求解便十分合适。基本思想和解决“八皇后问题” 的思想一致,都是利用回溯法。从入口开始,探索每一个迷宫中没有被墙挡住的位置,如果该位置可以移动到下一个位置,则标记该位置已被探索过并入栈;如果不能移动到下一位置,则标记为探索失败并回退到上一个位置,如果最终退回了出发点,则说明迷宫无解。下面附上代码:#i原创 2016-04-08 22:14:41 · 1140 阅读 · 0 评论 -
利用循环不变式写出正确的二分查找及其衍生算法
一.你能准确写出二分查找吗?先看看定义 二分查找的搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则查找成功;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。思路很简单以至于大多数人都能讲出来,但是有多少人能一次写出bug-free的原创 2016-08-05 16:34:53 · 1265 阅读 · 0 评论 -
微机原理
Part1 常量定义1.常值定义MAX_NAME_LEN 最大姓名长度MAX_CLASS_LEN 最大班级编号长度MAX_ID_LEN 最大学号长度MAX_SCORE_LEN 最大成绩长度MAX_STACK_SIZE 最大栈空间MAX_BUFFER_SIZE 缓冲区最大空间MAX_STU_BUFFER_SIZE 学生实例缓冲区最大空间...原创 2018-05-18 15:46:33 · 2184 阅读 · 0 评论 -
学籍管理系统文档
KelvinMao BlogTECHNOLOGY,LIFE AND THINKINGMAY 28, 2018KELVINMAO学籍管理系统文档Part1 常量定义1.常值定义MAX_NAME_LEN 最大姓名长度MAX_CLASS_LEN 最大班级编号长度MAX_ID_LEN 最大学号长度MAX_SCORE_LEN 最大成绩长度MAX_STACK_SIZE 最大栈空间MAX_...原创 2019-04-24 09:29:38 · 579 阅读 · 0 评论