算法及数据结构
syfly007
这个作者很懒,什么都没留下…
展开
-
二叉搜索树、B-树、B+树、B*树
原文地址:http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html二叉搜索树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树转载 2012-10-24 10:11:36 · 713 阅读 · 0 评论 -
编程之美:三盏灯问题
房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个电灯是亮的。请问如何之进入房间一次,就能指明哪一个开关控制哪一个灯?本人愚钝,实在想不出来。。。。网上的解法:因为灯开着是会发热的,那么先开一个开关,一段时间后,关闭这个开关,然后打开余下两个开关中的任何一个,进入房间。此时,亮着的是第二次打开的开关;两个不亮的灯,热的是第一次打开的灯原创 2013-09-12 18:12:06 · 2851 阅读 · 0 评论 -
一日一码06——堆排序
这个堆排序算法,采用的是最大堆;最小堆,通常在构造最小优先队列时使用。//堆排序 2013/09/29#include #include #include #include int heapSize = 0;void swap(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}int left(int原创 2013-09-29 16:18:17 · 733 阅读 · 0 评论 -
一日一码07——链表
链表的实现,以后会更新。/*带头结点链表常用操作*/#include typedef struct Node{ int data; struct Node *next;} Node;Node* createList(int *arr, int n);int insertList(Node* head, int pos, int data);int del原创 2013-09-29 11:42:49 · 799 阅读 · 0 评论 -
一日一码05--希尔排序
坚持真的是最难的事,上次写代码已经是十几天之前了。//希尔排序 2013/09/22#include #include #include #include //path为步长,正常的插入排序调用是insertSort(a,n,0,1)void insertSort(int* a,int n, int start, int path){ int i,j,t; fo原创 2013-09-22 17:39:40 · 1027 阅读 · 0 评论 -
一日一码08——约瑟夫环
/*一日一码08:约瑟夫环问题已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列。求最后出列那个人的编号。*/#include "stdio.h"int next(int arr[],int size,int start, int step, int flag){ int i原创 2013-10-10 17:47:00 · 1411 阅读 · 0 评论 -
二叉树的遍历
虽然很简单,但有时还是会弄混1、前序遍历:先访问该节点,然后在递归遍历其左子树,然后再访问其右子树。2、中序遍历:先递归遍历其左子树,然后访问该节点,然后再递归遍历其右子树。3、后序遍历:先递归遍历其左子树,然后递归遍历其右子树,然后在访问该节点。原创 2013-10-15 13:24:27 · 753 阅读 · 0 评论