算法:数据结构
This commit is contained in:
parent
973e28ad64
commit
6636f86f66
32
.obsidian/workspace
vendored
32
.obsidian/workspace
vendored
@ -7,8 +7,13 @@
|
||||
"id": "742c808ba884e60f",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {}
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "wiki/algo/概述/算法.md",
|
||||
"mode": "source",
|
||||
"backlinks": false,
|
||||
"source": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
@ -92,7 +97,9 @@
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {}
|
||||
"state": {
|
||||
"file": "wiki/algo/概述/算法.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -111,23 +118,24 @@
|
||||
"state": {}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"currentTab": 4
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 238.5
|
||||
},
|
||||
"active": "73ad29197a6e1773",
|
||||
"active": "ed729260027c7607",
|
||||
"lastOpenFiles": [
|
||||
"wiki/algo/概述/数据结构.md",
|
||||
"wiki/algo/概述/算法.md",
|
||||
"templates/文档 - 完全模板.md",
|
||||
"templates/文档 - 快速模板.md",
|
||||
"wiki/algo/常见算法.md",
|
||||
"templates/日志 - 季度模板.md",
|
||||
"blog/写十万字的博客是一种什么感觉.md",
|
||||
"blog/未命名.md",
|
||||
"templates/博客 - 快速模板.md",
|
||||
"templates/文档 - 快速模板.md",
|
||||
"templates/文档 - 完全模板.md",
|
||||
"templates/日志 - 周记模板.md",
|
||||
"templates/日志 - 日记模板.md",
|
||||
"templates/日志 - 季度模板.md",
|
||||
"templates/博客 - 完全模板.md",
|
||||
"未命名.md"
|
||||
"templates/日志 - 周记模板.md"
|
||||
]
|
||||
}
|
@ -244,7 +244,7 @@ const config = {
|
||||
to: "/dev",
|
||||
},
|
||||
{
|
||||
label: "逻辑算法",
|
||||
label: "算法逻辑",
|
||||
to: "/algo",
|
||||
},
|
||||
{
|
||||
|
@ -21,7 +21,6 @@ slug: string | 自定义文档的 URL
|
||||
tags:
|
||||
- 文档标签
|
||||
draft: boolean | 表明文档处于未完成状态
|
||||
last_update:
|
||||
date: 1/1/2000
|
||||
author: 自定义作者名
|
||||
---
|
||||
|
@ -5,7 +5,6 @@ keywords:
|
||||
- 关键字
|
||||
tags:
|
||||
- 标签
|
||||
last_update:
|
||||
author: 7Wate
|
||||
date: <% tp.date.now("YYYY-MM-DD") %>
|
||||
---
|
||||
|
@ -1,202 +0,0 @@
|
||||
---
|
||||
id: 常见代码
|
||||
title: 常见代码
|
||||
sidebar_position: 3
|
||||
data: 2022年1月27日
|
||||
---
|
||||
## 九九乘法表
|
||||
|
||||
```python
|
||||
"""
|
||||
输出乘法口诀表(九九表)
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
|
||||
for i in range(1, 10):
|
||||
for j in range(1, i + 1):
|
||||
print('%d*%d=%d' % (i, j, i * j), end='\t')
|
||||
print()
|
||||
```
|
||||
|
||||
## 判断是不是素数
|
||||
|
||||
```python
|
||||
"""
|
||||
输入一个正整数判断它是不是素数
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-01
|
||||
"""
|
||||
from math import sqrt
|
||||
|
||||
num = int(input('请输入一个正整数: '))
|
||||
end = int(sqrt(num))
|
||||
is_prime = True
|
||||
for x in range(2, end + 1):
|
||||
if num % x == 0:
|
||||
is_prime = False
|
||||
break
|
||||
if is_prime and num != 1:
|
||||
print('%d是素数' % num)
|
||||
else:
|
||||
print('%d不是素数' % num)
|
||||
```
|
||||
|
||||
## 打印三角形图案
|
||||
|
||||
```python
|
||||
*
|
||||
**
|
||||
***
|
||||
****
|
||||
*****
|
||||
```
|
||||
|
||||
```python
|
||||
*
|
||||
**
|
||||
***
|
||||
****
|
||||
*****
|
||||
```
|
||||
|
||||
```python
|
||||
*
|
||||
***
|
||||
*****
|
||||
*******
|
||||
*********
|
||||
```
|
||||
|
||||
```python
|
||||
"""
|
||||
打印三角形图案
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
|
||||
row = int(input('请输入行数: '))
|
||||
for i in range(row):
|
||||
for _ in range(i + 1):
|
||||
print('*', end='')
|
||||
print()
|
||||
|
||||
|
||||
for i in range(row):
|
||||
for j in range(row):
|
||||
if j < row - i - 1:
|
||||
print(' ', end='')
|
||||
else:
|
||||
print('*', end='')
|
||||
print()
|
||||
|
||||
for i in range(row):
|
||||
for _ in range(row - i - 1):
|
||||
print(' ', end='')
|
||||
for _ in range(2 * i + 1):
|
||||
print('*', end='')
|
||||
print()
|
||||
```
|
||||
|
||||
## 寻找水仙花数
|
||||
|
||||
```python
|
||||
"""
|
||||
找出所有水仙花数
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
|
||||
for num in range(100, 1000):
|
||||
low = num % 10
|
||||
mid = num // 10 % 10
|
||||
high = num // 100
|
||||
if num == low ** 3 + mid ** 3 + high ** 3:
|
||||
print(num)
|
||||
```
|
||||
|
||||
## 数字反转
|
||||
|
||||
```python
|
||||
"""
|
||||
正整数的反转
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
|
||||
num = int(input('num = '))
|
||||
reversed_num = 0
|
||||
while num > 0:
|
||||
reversed_num = reversed_num * 10 + num % 10
|
||||
num //= 10
|
||||
print(reversed_num)
|
||||
```
|
||||
|
||||
## 百钱百鸡
|
||||
|
||||
```python
|
||||
"""
|
||||
《百钱百鸡》问题
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
|
||||
for x in range(0, 20):
|
||||
for y in range(0, 33):
|
||||
z = 100 - x - y
|
||||
if 5 * x + 3 * y + z / 3 == 100:
|
||||
print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z))
|
||||
```
|
||||
|
||||
## CRAPS赌博游戏
|
||||
|
||||
```python
|
||||
"""
|
||||
Craps赌博游戏
|
||||
我们设定玩家开始游戏时有1000元的赌注
|
||||
游戏结束的条件是玩家输光所有的赌注
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
"""
|
||||
from random import randint
|
||||
|
||||
money = 1000
|
||||
while money > 0:
|
||||
print('你的总资产为:', money)
|
||||
needs_go_on = False
|
||||
while True:
|
||||
debt = int(input('请下注: '))
|
||||
if 0 < debt <= money:
|
||||
break
|
||||
first = randint(1, 6) + randint(1, 6)
|
||||
print('玩家摇出了%d点' % first)
|
||||
if first == 7 or first == 11:
|
||||
print('玩家胜!')
|
||||
money += debt
|
||||
elif first == 2 or first == 3 or first == 12:
|
||||
print('庄家胜!')
|
||||
money -= debt
|
||||
else:
|
||||
needs_go_on = True
|
||||
while needs_go_on:
|
||||
needs_go_on = False
|
||||
current = randint(1, 6) + randint(1, 6)
|
||||
print('玩家摇出了%d点' % current)
|
||||
if current == 7:
|
||||
print('庄家胜')
|
||||
money -= debt
|
||||
elif current == first:
|
||||
print('玩家胜')
|
||||
money += debt
|
||||
else:
|
||||
needs_go_on = True
|
||||
print('你破产了, 游戏结束!')
|
||||
```
|
73
wiki/algo/概述/数据结构.md
Normal file
73
wiki/algo/概述/数据结构.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
title: 数据结构
|
||||
description: 数据结构的定义
|
||||
keywords:
|
||||
- 数据结构
|
||||
- 抽象数据类型
|
||||
tags:
|
||||
- 数据结构
|
||||
author: 7Wate
|
||||
date: 2022-08-25
|
||||
---
|
||||
## 概述
|
||||
数据结构是相互之间存在**一种或多种特定关系**的数据元素的集合。
|
||||
## 数据
|
||||
数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
|
||||
|
||||
**数据项 > 数据元素 >> 数据对象:数据项构成了数据元素,数据元素组合成了数据对象。**
|
||||
|
||||
## 结构
|
||||
结构是不同数据元素之间不是独立的,而是存在特定的关系。
|
||||
### 逻辑结构
|
||||
逻辑结构是指**数据对象 中 数据元素**之间的相互关系。
|
||||
|
||||
- 集合:集合结构中的数据元素除了属于一个集合外,它们之间**没有其他关系**。
|
||||
- 线性:线性结构中的数据元素之间是**一对一的关系**。
|
||||
- 树形:树形结构中的数据元素之间存在一种**多对多的层次关系**。
|
||||
- 图形:图形结构的数据元素是**多对多的关系**。
|
||||
|
||||
### 物理结构
|
||||
|
||||
物理结构是指数据的逻辑结构在计算机中的存储形式。
|
||||
|
||||
#### 顺序存储
|
||||
|
||||
顺序存储结构是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
|
||||
|
||||
#### 链式存储
|
||||
|
||||
链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
|
||||
|
||||
## 数据类型
|
||||
|
||||
数据类型是指一组**性质相同的值的集合**以及定义在此**集合上的一些操作**的总称。
|
||||
|
||||
### 定义
|
||||
|
||||
- 相同数据对象集合(例如整数 > 整数型,字符 > 字符型)。
|
||||
- 集合相关联的操作(整数可以加减,字符可以拼接)。
|
||||
|
||||
### 分类
|
||||
|
||||
- 原子类型(字节型、数值型、字符串型)。
|
||||
- 结构类型(原子类型的组合)。
|
||||
|
||||
## 抽象数据类型
|
||||
|
||||
抽象数据类型(Abstract Data Type,ADT)是指一个数学模型及其定义在该模型上的一组操作。
|
||||
|
||||
```markdown
|
||||
ADT 抽象数据类型名
|
||||
Data
|
||||
数据元素之间逻辑关系的定义
|
||||
Operation
|
||||
操作1
|
||||
初始条件
|
||||
操作结果描述
|
||||
操作2
|
||||
…………
|
||||
操作n
|
||||
…………
|
||||
endADT
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user