
数据结构
文章平均质量分 93
wangchuang2017
天下才子,中州过半
惟楚有才,于斯为盛
实事求是,知行合一
师者,所以传道,授业,解惑也
展开
-
数据结构——哈希表
数据结构——哈希表刀刀第一次结束哈希表是在数据结构课上,在讲查找的时候老师随便提了一下哈希表这个概念,最近在做聊天室的时候要用到哈希表,更加深入的理解了哈希表。1.什么是HashMap?先说说存储结构,实际上在我们学过的数据结构可以归结为两类:连续的的存储结构和不联系的存储结构,其代表分别为数组和链表。而我们学过的堆栈,队列,树,图,都可以用这两种结构来实现。连续的存储结构——数组,在数据的查找和修改上具有很好的优点,很方便,时间复杂度很小。但是在数据的增添和删除上则显得很麻烦,空间复杂度很原创 2021-10-02 13:11:38 · 1648 阅读 · 0 评论 -
弱类型、强类型、动态类型、静态类型语言的区别是什么?
无类型: 汇编弱类型、静态类型 : C/C++弱类型、动态类型检查: Perl/PHP强类型、静态类型检查 :Java/C#强类型、动态类型检查 :Python, Scheme静态显式类型 :Java/C静态隐式类型 :Ocaml, Haskell强类型:偏向于不容忍隐式类型转换。譬如说haskell的int就不能变成double弱类型:偏向于容忍隐式类型转换。譬如说C语...原创 2019-09-30 20:28:00 · 273 阅读 · 0 评论 -
C语言----指针
C语言的灵魂就是指针;没有理解指针,就没有学好C语言一、内存和地址提到c语言,从第一版标准语法出世至今,该语言成为计算机学界多年屹立不倒不倒的旗帜,秘诀就在指针。而提到指针就不得不讲内存和地址。基本概念1.内存(Memory),其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后...原创 2019-09-01 20:50:09 · 164 阅读 · 0 评论 -
数据结构----内存分配问题
一、结构的存储分配在座各位,肯定都明白机器内存分配对程序的运行效率有多重要。今天,首先我们就来梳一遍结构的存储分配问题。编译器按照成员列表的顺序,依次给每个成员分配空间。只有当存储成员时满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外空间。系统禁止编译器在一个结构的起始位置跳过几个字节来满足边界对齐的要求,因此所有结构的存储位置必须是结构中边界要求最严格的数据类型所要求的位置。如...原创 2019-09-01 20:46:44 · 988 阅读 · 0 评论 -
数据结构---基础概念
一、内容要点(一)什么是数据结构1.用计算机解决问题需要几个步骤:从实际问题抽象出数学模型; 设计解决此数学问题的算法; 编译、调试程序,直至得到最终答案。2.问题的类型例1:图书管理系统、新生信息登记系统、酒店入住登记系统等此类文章管理的数学模型中,计算机处理的对象间一般存在着一对一的线性关系,所以叫线性数据结构 例2:计算机与人机对弈问题、游戏中触发模型和步骤等此类...原创 2019-09-01 20:44:57 · 559 阅读 · 0 评论 -
结构体struct 联合体 union
今天我们来复习c语言提供的两种聚合数据类型(aggregate data type):数组和结构,其中之一“结构”。今天的第一个复习问题来了,什么是聚合数据类型?聚合数据类型,顾名思义就是将具有某一共同属性的数据通过特定方式或者结构结合起来,简言之,就是能够同时存储超过一个的单独数据。当然我们接下来就要先复习结构了。第二个问题,那联合体又是什么呢?一、结构我们先来设想一个下面这...原创 2019-09-01 20:42:58 · 477 阅读 · 0 评论 -
BST AVL 红黑树 B B+树
二叉搜索树(BST)简明BST递归定义(Knuth Donald):对于任意一个节点均满足:1. 所有位于左子树的节点值均比该节点值小2. 所有位于右子树的节点值均大于等于该节点值3. 所有左子树和右子树也必须是BSTAVL简明AVL定义(Knuth Donald):对于任意一个节点均满足:1. 左子树和右子树的高度差小于等于1红黑树简明RBTREE定义(...原创 2019-08-31 17:38:20 · 188 阅读 · 0 评论 -
8 升满壶和两个分别是 5 升、3 升的空壶 如何得到 4 升水?
原题:给你一个装满水的 8 升满壶和两个分别是 5 升、3 升的空壶,请想个优雅的办法,使得其中一个水壶恰好装 4 升水,每一步的操作只能是倒空或倒满。理解了这个题目的意思之后,我们的第一个方法肯定就是使用强大的脑力来进行暴力破解法,瓶子里的水在我们的脑子里颠三倒四,但是脑子有可能没那么清晰,想了几步之后就开始出现记忆错乱,然后就不得不开始慢慢重播。 甚至到最后好不容易搞定了,但是怎么走过...原创 2019-08-31 16:24:36 · 5991 阅读 · 3 评论 -
两个EdgeNode夹一个Node
在C中,各种类型的指针本身只是一个地址值,长度都是一样的。但是只知道地址值,你是没法确定往后多少bit是你真正有效的数据范围,所以指针就要加类型来确定往后取得范围。所以你的struct里面那个嵌套的东西只是一个地址, 不是struct结构本身。到这里你的编译器是可以确认你整个结构体的大小的,你的例子中就是一个int,一个EdgeType,加一个地址的长度。其实这个struct地址你甚至可以...原创 2019-01-21 20:15:35 · 779 阅读 · 0 评论 -
数组合并
#include"stdio.h"int in(int a[],int n){int i;for(i=0;i scanf("%d",&a[i]);//return 1;}int out(int a[],int n){int i;for(i=0;i printf("%d ",a[i]);//return 1;}int merg(原创 2014-09-05 12:18:15 · 457 阅读 · 0 评论