
数据结构
Maria21
这个作者很懒,什么都没留下…
展开
-
一次遍历, 查找不定长链表中点
1. 使用两个指针进行遍历,快指针每次步进2,慢指针每次步进1.2. 当快指针到达链表尾部的时候,慢指针指向的就是链表的中点.代码://linked.c#include #include #include typedef struct node {int data;struct node *next;} Node;Node *in转载 2014-12-03 22:28:31 · 760 阅读 · 0 评论 -
链表的冒泡排序。
为了练习一下链表的使用,写了个链表的冒泡排序。冒泡排序,在每次遍历的每个链表数据中找出数据最小或最大的节点和原始链表数据的头节点交换, 交换的过程中要用到,待交换头节点和最大或最小节点的前驱节点。 还要注意带头节点第一个冒泡上来的数和头节点的交换。还要注意头节点就是最小节点的前驱节点的情况。// LinkListSort.cpp :转载 2014-12-02 15:20:43 · 628 阅读 · 0 评论 -
判断两个链表是否相交并找出交点
问题描述:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。思路:1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。2、当然采用暴力的方法也是可以的,遍历两个链表,在遍历的过程中进行比较,看节点是否相同。3、第三种思路是比较奇特的,在编程之美上看到的。先遍历第一个链表到转载 2014-12-01 22:35:41 · 636 阅读 · 0 评论 -
Warshall传递闭包算法的学习与实现
1、问题引入 一个有n个顶点的有向图的传递闭包为:有向图中的初始路径可达情况可以参见其邻接矩阵A,邻接矩阵中A[i,j]表示i到j是否直接可达,若直接可达,则A[i,j]记为1,否则记为0;两个有向图中i到j有路径表示从i点开始经过其他点(或者不经过其他点)能够到达j点,如果i到j有路径,则将T[i,j]设置为1,否则设置为0;有向图的传递闭包表示从邻接矩阵A出发,求的所有节点间的路径可转载 2014-11-06 21:27:11 · 928 阅读 · 0 评论 -
图的存储结构(存储、遍历)
一、图的存储结构1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一转载 2014-11-05 21:50:10 · 1017 阅读 · 0 评论 -
链表笔试面试题
1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyvoid List::reverse() { list_node * p = head; list_node * q = p->next; list_node * r = NUL转载 2014-11-18 20:05:59 · 440 阅读 · 0 评论 -
C/C++面试题大汇总
最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。发布之前先申明两点: 1 所有资料来自网络(主要是优快云),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道转载 2014-10-24 21:51:39 · 777 阅读 · 0 评论 -
红黑树
介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和Robert Sedgewick改成一个比较摩登的名字:红黑树。红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,转载 2014-11-11 15:03:26 · 440 阅读 · 0 评论 -
递归算法的时间复杂度分析
在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法: (1)代入法(Substitution Method) 代入法的基本步骤是先推测递归方程的显式解,然后用数学归纳法来验证该解是否合理。转载 2014-09-14 16:55:14 · 761 阅读 · 0 评论 -
八皇后问题(回溯法)
[cpp] view plaincopyprint?#include using namespace std; #define N 8 //N代表皇后数 void queen() { int Count=0; //计算总共的解的数量 int column[N+1]; //col转载 2014-09-14 15:25:42 · 671 阅读 · 0 评论