![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 80
hgy2011
这个作者很懒,什么都没留下…
展开
-
浮点数的二进制表示学习
浮点数的二进制表示学习基础知识:十进制转十六进制;十六进制转二进制;了解:目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。这种结构是一种科学计数法,用符号、指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号。下面是具体的规格: 符号位转载 2012-05-18 10:00:06 · 666 阅读 · 0 评论 -
直线生成算法
直线生成算法http://blog.csdn.net/orbit/article/details/7185982在欧氏几何空间中,平面方程就是一个三元一次方程,直线就是两个非平行平面的交线,所以直线方程就是两个三元一次方程组联立。但是在平面解析几何中,直线的方程就简单的多了。平面几何中直线方程有多种形式,一般式直线方程可用于描述所有直线: Ax+By+C = 0 (A、B转载 2012-05-26 11:57:56 · 1829 阅读 · 0 评论 -
字符串的相似度
字符串的相似度http://blog.csdn.net/orbit/article/details/6649322我们把两个字符串的相似度定义为:将一个字符串转换成另外一个字符串的代价(转换的方法可能不唯一),转换的代价越高则说明两个字符串的相似度越低。比如两个字符串:“SNOWY”和“SUNNY”,下面给出两种将“SNOWY”转换成“SUNNY”的方法: 变换1:转载 2012-05-26 12:02:15 · 476 阅读 · 0 评论 -
几种常用查找算法
几种常用查找算法(顺序查找法、二分法、二叉树、哈希表法)的比较// 临时工作区.cpp : Defines the entry point for the console application.//2008.9.8 数据结构课程设计第一至二题#include#include#includeusing namespace std;templateint Find_s(T data[转载 2013-03-30 11:59:42 · 740 阅读 · 0 评论 -
排序算法总结
排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程工作 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位置 三转载 2013-03-30 12:09:42 · 578 阅读 · 0 评论 -
libcstl简介
libcstl简介libcstl是一个应用于C语言编程的函数库,它将编程过程中经常使用的数据结构如向量、链表、集合、树等封 装成相应的数据结构并提供一系列的操作函数来操作保存在这些数据结构中的数据,同时它还将常用的算法如 排序、查找、划分等封装成相应的算法函数并提供迭代器来使两者之间建立联系方便使用。从libcstl的名字 就可以看出它于STL有一定的关系,是的libcstl的接口和实现都转载 2013-04-09 09:42:27 · 7752 阅读 · 4 评论 -
常用算法总结
1.收集1).问题描述:将整数789转换为987 算法源代码:2.线性表3.链表4.队列和栈5.树与.二叉树6.查找7.排序图的拓扑排序在程序当前目录下建立graph.txt文件,写入下面内容,VC++ 6.0下程序运行通过。v1 v2 v1 v3v1 v4v2 v4 v2 v5v3 v原创 2012-05-18 10:30:52 · 416 阅读 · 0 评论 -
常用数据结构定义
//顺序表数据结构//单链表数据结构typedef struct tagLIST_NODE_S { DATA_TYPE data; struct tagLIST_NODE_S *next;}LIST_NODE_S, *LinkList;//双向链表数据结构typedef struct tagDOUBLE_LIST_NODE_S { DATA_TYPE data; str原创 2016-08-23 14:55:05 · 374 阅读 · 0 评论 -
linux内核链表学习笔记
//// coreList.h// hehe//// Created by yin on 16/8/24.// Copyright © 2016年 yin. All rights reserved.//#ifndef coreList_h#define coreList_h#define LIST_POISON1 ((struct list_head *) 0x0)原创 2016-08-24 00:41:28 · 568 阅读 · 1 评论 -
单链表排序
#include#include//#includetypedef struct node{int data;/*data代表成绩分数*/struct node *next;}LNode,*LinkList;LinkList Creat(void)/*创建链表,结束标志为当输入的数据为0!*/{LinkList H,p1,p2;int n;n原创 2016-08-27 00:50:44 · 578 阅读 · 0 评论 -
合并两个单链表为递减有序的单链表
合并两个单链表为递减有序的单链表LinkList *Connect(LinkList *ha,LinkList *hb){ LinkList *pa=ha->next,*pb=hb->next,*hc,*tc; hc=pa; hc->next=NULL; tc=hc; while(pa!=NULL&&pb!=NULL) {转载 2012-05-26 11:39:13 · 1168 阅读 · 0 评论 -
三只水桶等分水问题
三只水桶等分水问题http://blog.csdn.net/orbit/article/details/6596521 有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为5升的空桶,如何利用这两个空桶等分8升水?附加条件是三个水桶都没有体积刻度,也不能使用其它辅助容器。 这是一道经典题目,一般人都可以在一分钟内给出答案,不过,很多转载 2012-05-26 12:04:08 · 1288 阅读 · 2 评论 -
RLE行程长度压缩算法
RLE行程长度压缩算法http://blog.csdn.net/orbit/article/details/7062218 RLE(Run Length Encoding)行程长度压缩算法(也称游程长度压缩算法),是最早出现、也是最简单的无损数据压缩算法。RLE算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于第一种情况,对连续的重复数转载 2012-05-26 11:59:48 · 716 阅读 · 0 评论 -
一个哈希表的实现
一个哈希表的实现转:http://blog.csdn.net/shuqin1984/article/details/6587503 哈希表是数组、链表及数学算法的一个综合应用, 无论在理论上还是实践上都是非常有价值的。 废话不多说了, 贴上自己的实现吧,以供参考,有错误之处,恳请指出。 还需要做的一个工作是, 为实现中用到的链表和哈希表设计详尽苛刻的测试。转载 2012-05-18 10:43:13 · 593 阅读 · 0 评论 -
堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总转载 2012-05-18 21:41:47 · 317 阅读 · 0 评论 -
快速排序
快速排序快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮转载 2012-05-18 21:43:50 · 369 阅读 · 0 评论 -
希尔排序
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是转载 2012-05-18 21:48:24 · 371 阅读 · 0 评论 -
冒泡排序
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码:[cpp]转载 2012-05-18 21:51:58 · 640 阅读 · 2 评论 -
快速排序(二)
快速排序一、介绍 快速排序和合并排序有点类似,两者可以相互比较。快速排序也是像合并排序那样将整个序列分成两段分别进行排序。但是快速排序没有合并排序的合并过程。 该算法是1960 年C.A.R.Hoard提出的一个非常好的排序算法。快速排序算法需要选择一个划分元素,把小于划分元素的元素放在它的左边,大于它的元素放在右边,这样就分成了左右两端,在对左右两段进行排序。转载 2012-05-20 00:28:43 · 467 阅读 · 0 评论 -
椭圆的生成算法
椭圆的生成算法http://blog.csdn.net/orbit/article/details/7496008椭圆和直线、圆一样,是图形学领域中的一种常见图元,椭圆的生成算法(光栅转换算法)也是图形学软件中最常见的生成算法之一。在平面解析几何中,椭圆的方程可以描述为(x – x0)2 / a2+ (y – y0)2 / b2 = 1,其中(x0, y0)是圆心坐标,a和b是椭圆转载 2012-05-26 11:53:00 · 1983 阅读 · 0 评论 -
圆生成算法
在平面解析几何中,圆的方程可以描述为(x – x0)2 + (y – y0)2 = R2,其中(x0, y0)是圆心坐标,R是圆的半径,特别的,当(x0, y0)就是坐标中心点时,圆方程可以简化为x2 + y2 = R2。在计算机图形学中,圆和直线一样,也存在在点阵输出设备上显示或输出的问题,因此也需要一套光栅扫描转换算法。为了简化,我们先考虑圆心在原点的圆的生成,对于中心不是原点的圆,可以通转载 2012-05-26 11:56:24 · 2030 阅读 · 0 评论 -
递归和循环的关系
一、递归和循环的关系 1、 递归的定义 顺序执行、循环和跳转是冯·诺依曼计算机体系中程序设计语言的三大基本控制结构,这三种控制结构构成了千姿百态的算法,程序,乃至整个软件世界。递归也算是一种程序控制结构,但是普遍被认为不是基本控制结构,因为递归结构在一般情况下都可以用精心设计的循环结构替换,因此可以说,递归就是一种特殊的循环结构。因为递归方法会直接或间接调用自身算法转载 2012-05-26 11:44:01 · 3480 阅读 · 0 评论 -
数据结构(顺序表-实现)
#include "List.h"#include #include #include //memset#define RETURN_OK 0#define RETURN_ERROR -1/* 构造一个空的线性表 */int InitList(SqList &L){ L.elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(E原创 2017-03-03 21:08:38 · 327 阅读 · 0 评论