
数据结构与算法
文章平均质量分 72
bobopeng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图的邻接矩阵存储结构的实现及其遍历
图的邻接矩阵存储结构是一个很容易理解的存储结构,用一个矩阵记录两个顶点之间的关系,对于无向无权图,用0和1来表示两个顶点之间是否相邻即可,对于无向有权图,使用一个整型来表示两个顶点之间的弧的权值即可。 存储结构的定义: typedef char VertexType ; // 顶点类型 typedef int EdgeType ; // 边类型 #define MaxVex 1原创 2013-10-25 16:23:42 · 4199 阅读 · 0 评论 -
数据结构-------顺序栈与链栈的实现
1.顺序栈 //////////////////////////////////////////////// // // 顺序栈的实现 // // 包括出栈和入栈 // ////////////////////////////////////////////////// /////////////// #include #include #include #include原创 2013-10-16 17:05:24 · 876 阅读 · 0 评论 -
金山2014校园招聘C++程序设计题
1.字符串拷贝函数 ////////////////////////////////////////////////////////// // // 字符串复制 // //////////////////////////////////////////////////////////// ////// #include #include #include void my_cop原创 2013-10-16 17:20:29 · 970 阅读 · 0 评论 -
图的十字链表存储结构的实现及其图的遍历
图的十字链表存储结构是将图的邻接表和逆邻接表组合起来的一个新的存储结构。因为邻接表只能方便计算出图中顶点的出度,而在计算顶点的入度问题时就不太方便了,必须遍历所有的顶点才能知道图中某个顶点的入度。而逆邻接表刚好和邻接表相反,所以组合他们就能够方便计算出图中任意顶点的入度和出度问题。 那么,十字链表很复杂吗?其实假如你的链表学到很好的话,那么可以说图的十字链表存储结构的实现是不难理解的。现在我们就原创 2013-10-25 15:52:07 · 4615 阅读 · 0 评论 -
简单选择排序与直接插入排序
#include #include #include // 顺序表的定义 typedef struct SeqList { int data[100] ; int length ; } SeqList ; //顺序表的初始化 void Init( SeqList * S ) { S->length = 0 ; } // 插入 void Insert( SeqList * S ,原创 2013-10-22 22:12:31 · 936 阅读 · 0 评论 -
根据空格分解英文字符串
将一段英文字符串分解成一个个单词。 /////////////////////////////////////////// // // 把一段英文短文根据空格分隔 // ///////////////////////////////////////////// //////////////// #include #include #include // 用来方便记录分解后的英文字原创 2013-10-18 19:52:59 · 943 阅读 · 0 评论 -
数据结构---------循环队列与链式队列
1.循环队列有几个初学者需要注意的地方: (1)如何判断循环队列为空或者已满? 其实在程序设计的过程中是有很多方法来处理同一个问题的,就看编写代码者如何去处理。一般情况下,有两种方法来处理循环队列的这个问题: a.在循环队列的定义过程中,用一个变量来记录当前队列中元素的个数; b.利用 (Q->front + 1)%MaxSize == Q->rear来判断是否已满;利用Q->front原创 2013-10-18 19:25:52 · 968 阅读 · 0 评论 -
二叉树的创建与其递归遍历
//////////////////////////////////////////// // // 二叉树的创建,遍历 // // 用#表示当前的结点为空 // //////////////////////////////////////////// /////////////////// #include #include #include typedef char ElemTy原创 2013-10-27 15:48:54 · 655 阅读 · 0 评论 -
自定义字符串类MyString的C++实现
///////////////////////////////////////////////////////////// // // 自定义字符串类MyString // ///////////////////////////////////////////////////////// //////////////////// #include #include #include usin原创 2013-10-16 17:42:29 · 10309 阅读 · 3 评论 -
约瑟夫环问题
约瑟夫环有很多的变种,其中有一个就是,输入要救的人数,请给出这些人合理的序号以至于他们都能得救。 下面是我用循环链表写的一个比较粗糙的算法,就当作为一个记录,等有时间再优化一下代码并且再用数组的方法做一下,最后希望能够收集约瑟夫环的大多数的问题来一个整理,大家见笑了。 ////////////////////////////////////////////// // // 利用链表j解原创 2013-10-18 19:31:13 · 959 阅读 · 0 评论 -
洗牌问题
洗牌实际上就是乱数问题,也可以理解为是一种随机数的问题。这其中的思路可以用做一种生成随机数的方法。 思路为:用一个数组记录下1----52的数据,然后遍历这个数组,在遍历的过程中,将当前数组的值与产生的随机下标对应的数组中的值进行交换,便利完成,这个数组就成了一个随机数的序列了. ////////////////////////////////////////////////// // /原创 2013-10-18 19:41:00 · 956 阅读 · 0 评论 -
数据结构----循环链表
#include #include #include typedef struct Node { int elem ; struct Node * next ; } Node ; typedef struct CycleLinkList { Node * head ; } CycleLinkList ; // 初始化循环链表 void InitCycleLinkList( C原创 2013-10-22 22:16:42 · 633 阅读 · 0 评论 -
m进制转换为n进制的问题
m进制转换为n进制存在有公式的转化,但是这里我使用十进制作为桥梁来实现m进制到n进制的转换。但是目前只能支持非大数,以后会研究一下大数之间m进制到n进制的转换,这里先记录一下. ////////////////////////////////////////////////////// // // 非大数之间的进制转换 // // m进制转换为n进制 // 2<= m原创 2013-10-18 19:36:00 · 1363 阅读 · 0 评论 -
老鼠走迷宫----------递归问题
老鼠走迷宫是一个典型的递归的问题,写几个这样的题才可以充分理解递归的过程。 写递归的过程有几点需要注意: (1)递归结束的条件 (2)递归过程的脉络,即逻辑要清晰。 ///////////////////////////////////////////////////// // // 在迷宫中显示老鼠能走出的迷宫的一条路径 // //////////////////////原创 2013-10-18 19:12:40 · 1549 阅读 · 0 评论 -
数据结构------建立一个词索引表
最近复习数据结构与算法,就把《数据结构(C语言版)》(清华大学,严蔚敏)拿出来看,在串的那一章的最后有一个程序设计题--------建立一个词索引表,写了一下,代码如下。、 文件1:define.h 内容:各种数据类型的定义 ////////////////////////////////////////////////// // // 数据类型的定义 // ////////原创 2013-10-17 21:51:12 · 9839 阅读 · 2 评论 -
图的邻接表存储结构的定义及其遍历
因为之前的一篇博客图的十字链表存储结构的实现及其遍历是图的邻接表存储结构的延伸,所以这里只是简单的谈一下。 邻接表存储结构的定义: #define MaxVex 20 typedef char VertexType ; // 顶点的类型 typedef int EdgeType ; // 边的类型 typedef struct EdgeNode // 边表结点 { int原创 2013-10-25 17:03:06 · 3530 阅读 · 0 评论 -
数据结构-----双向循环链表
////////////////////////////////////////// // // 双向循环链表 // /////////////////////////////////////////// ///////////////// #include #include #include // 结点定义 typedef struct Node { int elem ; s原创 2013-10-22 22:17:38 · 732 阅读 · 0 评论 -
数据结构-----顺序表与单链表的实现
1.顺序表 //////////////////////////////////////////////////////////// // // 实现顺序表的初始化,插入,删除,查找,逆置,合并等操作 // //////////////////////////////////////////////////////////// ////////////// #include #incl原创 2013-10-16 17:02:32 · 1129 阅读 · 0 评论 -
实现就地逆置单链表
///////////////////////////////////////// // // 就地逆置单链表 // ////////////////////////////////////////// /////////////////// #include #include #include // 定义单链表的结点 typedef struct Node { int elem原创 2013-10-22 22:18:43 · 1162 阅读 · 0 评论 -
利用栈实现进制转换
用栈来实现进制间的转换实际上只是利用了栈的“先进后出”的原则,实际上完全可以不用栈来实现进制间的转换,可以将数组逆置来代替栈的作用,而且代码较少。 //////////////////////////////////////////////// // // 利用栈来实现进制转换 // ////////////////////////////////////////////// //原创 2013-10-18 19:44:46 · 4572 阅读 · 0 评论