
数据结构
古幽风琴
正式步入编程环境!
展开
-
顺序表之不定长
顺序表之不定长----顺序表:是在计算机内存中以数组的形式保存的线性表,逻辑相邻,地址也相邻,可以通过下标任意访问。分析:不定长顺序表,顾名思义就是你的顺序表的长度可以有由你控制,觉得不够你可以自己开辟; 在定长的顺序表中,你的结构体中是只有两个变量,data值,p->length数组目前元素个数。 在不定长的顺序表中,你的结构应该除了定原创 2016-09-19 12:08:15 · 392 阅读 · 0 评论 -
两个栈实现一个队列
//两个栈实现一个队列/*两个栈实现一个队列,也要满足队列的基本操作,就是先进先出思想:1号栈(负责打印),2号栈(数据中转) 1.先让数据进入1号栈,此时数据都是逆的。 2.然后往2号栈里入,入到1号栈里面只有一个元素的时候在打印; 3.1号栈出栈打印,当1号栈出栈尾空的时候,吧2号栈里面的所有元素都转入1号栈中 4.重复2,*///1号栈(负责打印)void原创 2017-04-17 11:21:27 · 227 阅读 · 0 评论 -
一棵二叉树的基本操作
#include#include#includeusing namespace std;typedef char Elemtype;typedef struct BtNode{ struct BtNode *leftchild; struct BtNode *rightchild; Elemtype data;}BtNode;int Depth(BtNode *p);原创 2017-04-04 18:24:08 · 1232 阅读 · 0 评论 -
二叉树的建立方法,你都懂吗?
二叉树的建立方法,你都懂吗? 二叉树是很简单,但是你真的会所有的建树方法吗?这里将会给你提供7种建树方法。 第一种:就是只利用先序建树,递归建树(但是先序必须是完整的,用#表示NULL) 第二种:利用先序传引用建树。 第三种:利用先序和二级指针建树。 第四种:给定某一个节点(这个节点是引用传进去)左右孩子。 第五种:给定某一个节点(这个节点是指针原创 2017-04-04 18:22:09 · 4969 阅读 · 1 评论 -
二叉树的遍历你会几种方法
二叉树的遍历 一棵二叉树的基本操纵,在这片博客里有记录:点击打开链接 一棵二叉树的多种建树方法也在这篇博客中:点击打开链接 今天这篇博客就是教你多种遍历的方法。咋们平时都知道一棵树的基本遍历就是先序,中序,后序。那么你也许会直接想起递归的实现遍历,那么你到底还会不会其他的方法。 今天这里教你三种方法。第一种:递归的二叉树遍历。第二种:用栈实现二叉树的遍历第三原创 2017-04-05 15:26:36 · 501 阅读 · 0 评论 -
线索二叉树的建立和中序遍历
#includeusing namespace std;typedef char Elemtype;typedef enum{LINK=0,THREAD=1}linktype;typedef struct BiThNode{ Elemtype data; BiThNode *leftchild; BiThNode *rightchild; linktype ltag;原创 2017-04-11 20:23:25 · 865 阅读 · 0 评论 -
斐波那契数列---递归和递归优化
斐波那契数列: 经典数学问题之一;斐波那契数列,又称黄金分割数列,指的是这样一个数列: 1、1、2、3、5、8、13、21、……想必看到这个数列大家很容易的就推算出来后面好几项的值,那么到底有什么规律,简单说,就是前两项的和是第三项的值,也许你会想到的是迭代,也学你想到的是递归。 简单分析一下递归:int fibon(int n){ n1 ++; if(原创 2016-10-03 17:50:55 · 26328 阅读 · 5 评论 -
队的应用之基数排序
基数排序: 我的理解:其实就是对数组的每个元素,从个位开始进桶排序,再十位进桶排序.......。给图解释吧!看这图理解会更好理解一点。看看代码吧!#include#include#include#include#include#include"LINK_QUEUE.h"void base_sort(int *arr,int len原创 2016-09-29 17:37:31 · 329 阅读 · 0 评论 -
迷宫
迷宫可以说,是我们小时候超级喜欢玩的游戏,怎么玩,大家都很清楚。介绍:1,表示墙,0,表示此路可通 ,#表示已走过,!表示出口 "1111111111111","1011101111111","1011101111111","1000000000011","10111111110!1","1111111111111"这是我给原创 2016-10-24 22:21:32 · 227 阅读 · 0 评论 -
栈的运用---四则运算
四则运算---用栈实现一下。思路:1.得有一串字符串,-----》给定中缀;6+(7-1)*3+8.8/2 2.转换中缀为后缀:6 7 1 - 3 * + 8.8 2 / + 3.变成后缀后,就不用看看+-*/()导致的运算级优先级。 ADD_OUT = 4, SUB_OUT = 4,原创 2016-10-24 22:07:26 · 441 阅读 · 0 评论 -
所有的排序烦恼
在计算机方面,学到现在接触到的基本都是数字,字符,最常见的那就是数字。但是对于一串数字,你能干什么,对于程序员来说,最先想到的也许就是排序、最大数、最小数吧!对于排序也很经典,那么现在我总结了一些排序,希望对你有帮助。 之前的排序有一部分:http://blog.youkuaiyun.com/qq_35256722/article/details/51702532这里有简单排序:交换排序、冒泡原创 2016-10-24 21:35:38 · 319 阅读 · 0 评论 -
链式栈
栈,就是数据结构中,必不可少的存储数据的东西。 特点:先进后出;在这片里面用到了,创建栈、销毁栈、头插栈、尾删栈、清空栈、获取栈顶元素、栈是否为空、出栈、出栈。 代码: LINK_STACK.h#ifndef _LINK_STACH_#define _LINK_STACH_#define ERROR -1typedef int elem_type;typedef原创 2016-10-24 21:33:14 · 343 阅读 · 0 评论 -
双链表应用之约瑟夫环问题
约瑟夫约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围,从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从1~n,最后结果即为原问题的解。在下面的例子中,我就先以5人的约瑟夫环进行测试:约瑟原创 2016-09-25 09:30:28 · 909 阅读 · 1 评论 -
经典面试题--点链表之无头插入
再简单头插图,tmp ->next = phead ->next ;phead->next = tmp;就ok!相信大家在通过上一篇的yue'u原创 2016-09-22 19:06:47 · 310 阅读 · 0 评论 -
经典面试题--单链表之无头删除
在删除一个单链表的一个数据成员时,大家都应该很清楚得有个头,就说说简单的尾删吧,你的做法一定是这样子:phead位置向后一直找到尾巴的前一个位置,将他的next改为NULL,然后释放掉尾巴就ok;看似简单问题还是用到了phead,因为你至少得让可动指针指向准备删除这个成员的前一个成员身上。 中间删,就是从头找到要删的成员之前成员身上,问题还是在phead,也许你会这么想,直接给定你位置,不原创 2016-09-22 18:52:14 · 524 阅读 · 0 评论 -
单链表---逆置---经典
在单链表这块其实不是很难,但是有的问题是很经典,这里关于经典的逆置我有5中方法,大家可以参考: 1.有两个指针一个指向头,一个指向尾。再取一个中间变量tmp ,只换data值就可以(次数控制好,是总长的一半) 2.再开辟一个单链表,直接进行尾删,尾插。(次数是总长) 3.在一个单链表中进行。尾删,中间插。 4.与第三个大致相同,头删中间原创 2016-09-22 18:19:25 · 231 阅读 · 0 评论 -
数据库的学习--概要
sql:是一个基本的虚表;是一个相互之间独立的表,是一个存储文件,有三层模型:外模型、模式、内模型;SQL语句的特点:1.语法简单、简单易用; 2.是一个一体化的语言,可以完成数据的定义、查询、操纵、控制等方面的功能; 3.SQL是一个一体化的语言,用户不需要知道内部发生了什么,只需要知道子啊做什么就行; 4.SQL是一个集合语言,是含有很多的关系; 5.是一个即使嵌入式语言优势一个自含式语原创 2017-10-23 17:06:34 · 400 阅读 · 0 评论