自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 克鲁斯卡尔算法

/********************  kruskal(GRAPH* pGraph)      _kruskal(MINI_GENERATE_TREE* pTree[], int length, DIR_LINE* pLine[], int number)             bubble_sort(void* array[], int lengt

2015-12-29 23:30:54 778

转载 prim算法

/********************1   struct:   DIR_LINE    MINI_GENERATE_TREE2    insert_line_into_queue(DIR_LINE** ppLine, int start, int end, int weight)     delete_line_from_queue(DIR_LINE** ppLi

2015-12-29 21:15:56 274

转载 图的保存

前面的几篇博客,我们对图进行基本定义,同时介绍了图的创建、图的添加和删除等。今天,我们聊一聊图是怎么在存储在外设中的。这些外接设备可以是各种类型的,比如说,可以是硬盘、sd卡、网络硬盘等等。本质上说,我们今天讨论的主题就是怎么把图的数据永久地保留在本地。并且,如果需要加载这些数据,也可以快速恢复图原来的面貌。对图数据结构已经记得不太清楚的朋友可以复习一下面的代码,回想一下我们之前的定义方法。

2015-12-29 21:03:28 212

转载 图的添加和删除

/************************1   insert_vectex_into_graph(GRAPH* pGraph, int start, int end, int weight)  2  delete_old_vectex(VECTEX** ppVectex, int start)  3  delete_old_line(LINE** pp

2015-12-29 20:30:38 379

转载 图的创建

/*******************1    struct:   LINE  VECTEX  GRAPH2  create_new_vectex(int start)3  create_new_line(int end, int weight)4   create_new_graph(int start, int end, int weight)5

2015-12-29 20:17:07 261

转载 图的表示

图是数据结构里面的重要一章。通过图,我们可以判断两个点之间是不是具有连通性;通过图,我们还可以计算两个点之间的最小距离是多少;通过图,我们还可以根据不同的要求,寻找不同的合适路径。当然,有的时候为了计算的需要,我们还需要从图中抽象出最小生成树,这样在遍历计算的时候就不需要持续判断是不是遇到了循环节点。当然,这所有的一切都是从图的表示开始的。    1)矩阵表示    矩阵表示可以说

2015-12-23 22:38:36 190

转载 二叉树深度遍历

深度遍历是软件开发中经常遇到的遍历方法。常用的遍历方法主要有下面三种:(1)前序遍历;(2)中序遍历;(3)后序遍历。按照递归的方法,这三种遍历的方法其实都不困难,前序遍历就是根-左-右,中序遍历就是左-根-右,后续遍历就是左-右-根。代码实现起来也不复杂。    1)前序遍历[cpp] view plaincopyvoid preo

2015-12-23 22:19:26 198

转载 二叉树广度遍历

在二叉树的遍历当中,有一种遍历方法是不常见的,那就是广度遍历。和其他三种遍历方法不同,二叉树的广度遍历需要额外的数据结构来帮助一下?什么数据结构呢?那就是队列。因为队列具有先进先出的特点,这个特点要求我们在遍历新的一层数据之前,必须对上一次的数据全部遍历结束。暂时还没有掌握队列知识的朋友可以看一看我的这一篇博客—队列。    a)下面是新添加的队列数据结构,其中数据部分换成了树节点指针的指

2015-12-23 21:46:15 274

转载 线性堆栈

前面我们讲到了队列,今天我们接着讨论另外一种数据结构:堆栈。堆栈几乎是程序设计的命脉,没有堆栈就没有函数调用,当然也就没有软件设计。那么堆栈有什么特殊的属性呢?其实,堆栈的属性主要表现在下面两个方面:    (1)堆栈的数据是先入后出    (2)堆栈的长度取决于栈顶的高度    那么,作为连续内存类型的堆栈应该怎么设计呢?大家可以自己先试一下:    (1)设计堆

2015-12-23 21:31:51 501

转载 线性队列

这里的线性结构实际上指的就是连续内存的意思,只不过使用“线性”这个词显得比较专业而已。前面一篇博客介绍了现象结构的处理方法,那么在这个基础之上我们是不是添加一些属性形成一种新的数据结构类型呢?答案是肯定的,队列便是其中的一种。    队列的性质很简单:    (1)队列有头部和尾部    (2)队列从尾部压入数据    (3)队列从头部弹出数据    那么连

2015-12-22 22:46:37 325

转载 排序二叉树删除

相比较节点的添加,平衡二叉树的删除要复杂一些。因为在删除的过程中,你要考虑到不同的情况,针对每一种不同的情况,你要有针对性的反应和调整。所以在代码编写的过程中,我们可以一边写代码,一边写测试用例。编写测试用例不光可以验证我们编写的代码是否正确,还能不断提高我们开发代码的自信心。这样,即使我们在开发过程对代码进行修改或者优化也不会担心害怕。然而看起来编写测试用例是一个繁杂的过程,但是从长期的收益来看

2015-12-22 14:06:46 519

转载 排序二叉树

前面我们讲过双向链表的数据结构。每一个循环节点有两个指针,一个指向前面一个节点,一个指向后继节点,这样所有的节点像一颗颗珍珠一样被一根线穿在了一起。然而今天我们讨论的数据结构却有一点不同,它有三个节点。它是这样定义的:[cpp] view plaincopytypedef struct _TREE_NODE  {      int d

2015-12-21 23:04:25 327

转载 链表逆序

(1)普通连续内存数据的反转分析[cpp] view plaincopySTATUS normal_revert(int array[], int length)  {      int* pData ;      int index = length - 1;      if(NULL == array || 0 == le

2015-12-21 22:26:24 214

转载 循环单向链表

1)打印链表数据[cpp] view plaincopyvoid print_data(const LINK_NODE* pLinkNode)  {      LINK_NODE* pIndex = NULL;      if(NULL == pLinkNode)          return;        pri

2015-12-21 21:15:23 259

转载 双向链表

(1)定义双向链表的基本结构[cpp] view plaincopytypedef struct _DOUBLE_LINK_NODE  {      int data;      struct _DOUBLE_LINK_NODE* prev;      struct _DOUBLE_LINK_NODE* next;  }D

2015-12-17 23:08:31 263

转载 单向链表

(1)设计链表的数据结构[cpp] view plaincopytypedef struct _LINK_NODE  {      int data;      struct _LINK_NODE* next;  }LINK_NODE;      (2)创建链表[cpp] view

2015-12-17 22:14:10 201

转载 socket中结构与函数

IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址;端口,是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存在的;域名,是用来代替IP地址来标示计算机的一种直观名称,例如百度网站的IP地址是202.108.22.43,这个IP地址没有任何逻辑含义,不便记忆,而www.baidu.com是一个便于记忆的名称

2015-08-05 15:35:51 335

转载 你所不知道的传输层

1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议和程序?8. TCP是否真的有链接?9. 链接是如何建立的(逻辑上)?10. 所谓的建立TCP链接开销很大,具体是指什么?11. 三次握手的目的是什么?

2015-07-25 21:06:44 213

转载 Linux C Socket编程原理及简单实例

1.   什么是TCP/IP、UDP?2.   Socket在哪里呢?3.  Socket是什么呢?4.  有很多的框架,为什么还在从Socket开始?5.   Linux C Socket简单示例 1.什么是TCP/IP、UDP?  TCP/IP(Transmission Control Protocol/Internet Protocol)即

2015-07-25 21:01:37 437

转载 Socket通信中的多进程编程实例

1  需求描述:(1)Linux下编写。(2)创建一个服务器、若干个客户端。(3)用户可以通过客户端输入文字向服务器发送消息。(4)服务器端接收到客户端发送的数据,将用户输入的内容在服务器上打印出来,并原样返回。2  相关基础2.1 套接字Socket通信编程2.1.1 TCP/IP通信过程:  图2.1.1 TCP/IP通信过程 2.1.2 U

2015-07-25 20:56:29 275

转载 软件开发流程

问题定义问题定义指在项目初期,从客户或用户处获取需求,弄清用户需要计算机解决的问题根本所在,以及项目所需的经费和资源的文档,最终使开发人员与客户就所构建的系统的范围达成一致意见。用户调查对用户进行访谈,调查,初步了解项目范围,需要解决的问题以及项目经费的重要信息。编写《系统目标与范围说明》将本阶段的结果写成相应的文档,即《系统目标与范围说明》。 可行性研究软

2015-07-25 20:30:06 741

转载 排序算法

一    简单排序算法   1  插入排序      先选择元素,再找到插入位置      找排序位置同时,空出排序位置      O(n2)#define MAX 10int arry[MAX+1];int n;void resort(){ int i,j,NewInput; for(i=1;i<n;i++) { arry[i]=scan

2015-07-23 12:18:23 202

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除