Hzy Blog

一二三四五,上山打老虎

数据结构-矩阵压缩

矩阵的压缩

1.先介绍对角矩阵和对称矩阵,因为他们的压缩方式都是相同的 对称矩阵:各数据元素沿主对角线对称的矩阵 对角矩阵:上(下)三角矩阵 用一维数组来储对称矩阵,需满足公式:(i*(i-1))/2 + j -1 ,这里的i和j都是从1开始的 1.1 对称矩阵,对角矩阵代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...

数据结构-栈和队列

顺序栈,链栈,队列

1.栈的总结 栈是一个满足只允许(后进先出的)规则的线性表,当我们用数组实现时,称为顺序栈,当我们用链表实现时,就称为链栈。 栈形象点就像一个仓库,我们每次放东西都放在深处,这样慢慢的,越靠近门口的东西反而是越新的,这样就是后进先出。 2. 下面我们用代码来实现模拟顺序栈 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2...

数据结构-双向链表

简单的介绍了一下双向链表

今天学习了一下几个链表的其他形态—双链表 1. 我们将链表末端的节点指向链表的头部,这样就构成一个单循环链表 2. 在这基础上我们在每个节点新增一个指针域,指向上一个节点,这样就构成一个双向链表 3.写的时候得注意边界条件,我是根据循环链表中根据空指针来判断是否循环一轮。 4.删除第一个节点,或者最后一个节点时的边界条件。 1 2 3 4 5 6 7 8 9 10 11 12 13 1...

数据结构-链表及其常见操作

单链表的学习以及一些常见操作

今天复习了一下数据结构中的链表,写一篇博客来记录总结一下 1.链表特性 链表是一种零散的线性数据结构。 在链表中进行,插入和删除的时候,时间复杂度仅为O(1) 在链表中进行,查找和遍历,时间复杂度为O(n) 2.下面是用python实现的单链表,以及一些常见的操作,我都写了注释 2.1记录一下链表创建的两种方法 头插法 头插法,创建的链表是倒序的,我们...

Golang基本用法(八)

go:reflect的使用

今天来学习一下反射的使用,因为我其实也不大理解go中为什么需要反射,以及反射的作用。

哈希表实现及基本操作

哈希表实现及基本操作

1.哈希:通过某种特定的函数、算法,将key和value关联起来,生成一种利于搜索的数据结构。 2.哈希表,通过哈希函数来记录,存放数据的表,叫做哈希表。 3.冲突,当 k1≠k2,但f(k1)==f(k2)时,k1,k2,是不同的键,但映射的位置是相同的,说明发生了冲突. 4.解决冲突的一些办法: 使用一个好的均匀的散列函数,尽量少点冲突。 链表法,当发生冲突时,在冲突的...

Golang基本用法(七)

go: go关键字的使用,GPM模型

go关键字应该是学go到现在,最感兴趣的地方了! 1.我们可以利用go关键字来创建goroutine,goroutine是由Go程序来管理和调度的,然后由Go程序来决定分配到每个CPU,我们可以创建多个goroutine来实现并发操作。 下面来写个例子,用一用go关键字。 我们一边打印玩手机,一边打印说话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1...

Golang基本用法(六)

go:接口interface

介绍了go中接口的用法 接口就是调用者和使用者都遵守的一种协议,大家按照统一的命名和参数类型来进行逻辑处理。听起来有点怪怪的,简单说就是大家都得遵守一定的规则,不按规则就不行。 1.声明接口使用关键字interface 像这里声明了一个talker的接口,里面有一个talk方法 1 2 3 4 type Talker interface { //接口里的方法 talk(...

Golang基本用法(五)

go:结构体

go中结构体的使用 1. 声明结构体的几种方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package main import "fmt" //定义结构体 type Point struct { X int Y int } func newPoint...

Golang基本用法(四)

go:函数,闭包

了解了一下go中函数的特性,加强对函数的使用 1.定义函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 package main import "fmt" //两个数相加的好几种格式 func add1(a int, b int) int { //定义a,b两个int类型参数,返回...