Skip to content

Commit 4bb8173

Browse files
author
why
committed
上传代码
1 parent 2e74208 commit 4bb8173

29 files changed

+2745
-0
lines changed

.idea/.name

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

+446
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/数据结构&算法-代码.iml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
# JavaScript-Data-Structure
22
JavaScript讲解了数据结构和算法
3+
4+
同步笔记: https://www.jianshu.com/nb/23682868
5+
6+
相关视频: 目前没有对外开放.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>为什么使用数组</title>
6+
</head>
7+
<body>
8+
<script>
9+
// 保存班级中所有学生的名字
10+
var name1 = "Tom"
11+
var name2 = "Lily"
12+
var name3 = "Lucy"
13+
var name4 = "Lilei"
14+
var name5 = "Coderwhy"
15+
16+
// 使用数组来保存学生名字
17+
var names = ["Tom", "Lily", "Lucy", "Lilei", "Coderwhy"]
18+
</script>
19+
</body>
20+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>创建和初始化数组</title>
6+
</head>
7+
<body>
8+
<script>
9+
// 创建和初始化数组
10+
var daysOfWeek = new Array()
11+
var daysOfWeek = new Array(7)
12+
var daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday',
13+
'Thursday', 'Friday', 'Saturday')
14+
15+
// 直接赋值数组内容
16+
var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
17+
'Thursday', 'Friday', 'Saturday'];
18+
19+
// 获取数组的长度
20+
// alert(daysOfWeek.length)
21+
//
22+
// // 普通for方式遍历数组
23+
// for (var i = 0; i < daysOfWeek.length; i++) {
24+
// alert(daysOfWeek[i])
25+
// }
26+
//
27+
// // 通过foreach遍历数组
28+
// daysOfWeek.forEach(function (value) {
29+
// alert(value)
30+
// })
31+
32+
// 求菲波那切数列的前20个数字
33+
var fibonacci = []
34+
fibonacci[0] = 1
35+
fibonacci[1] = 1
36+
37+
for (var i = 2; i < 20; i++) {
38+
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]
39+
}
40+
41+
alert(fibonacci)
42+
43+
</script>
44+
</body>
45+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Title</title>
6+
</head>
7+
<body>
8+
<script>
9+
// 初始化一个数组
10+
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
11+
12+
// 添加一个元素10到数组的最后位置
13+
// 方式一:
14+
numbers[numbers.length] = 10
15+
16+
// 方式二:
17+
numbers.push(11)
18+
numbers.push(12, 13)
19+
20+
// alert(numbers)
21+
22+
// 在数组首位插入一个元素
23+
for (var i = numbers.length; i > 0; i--) {
24+
numbers[i] = numbers[i-1]
25+
}
26+
numbers[0] = -1
27+
// alert(numbers) // -1,0,1,2,3,4,5,6,7,8,9,10,11,12,13
28+
29+
// 通过unshift在首位插入数据
30+
numbers.unshift(-2)
31+
numbers.unshift(-4, -3)
32+
// alert(numbers) // -4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13
33+
34+
// // 删除最后的元素
35+
// numbers.pop()
36+
// alert(numbers) // -4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12
37+
//
38+
// // 删除首位的元素
39+
// for (var i = 0; i < numbers.length; i++) {
40+
// numbers[i] = numbers[i+1]
41+
// }
42+
// numbers.pop()
43+
// alert(numbers)
44+
//
45+
// numbers.shift()
46+
// alert(numbers)
47+
48+
// 删除指定位置的几个元素
49+
numbers.splice(5, 3)
50+
// alert(numbers) // -4,-3,-2,-1,0,4,5,6,7,8,9,10,11,12,13
51+
52+
// 插入指定位置元素
53+
numbers.splice(5, 0, 3, 2, 1)
54+
// alert(numbers) // -4,-3,-2,-1,0,3,2,1,4,5,6,7,8,9,10,11,12,13
55+
56+
// 修改指定位置的元素
57+
numbers.splice(5, 3, "a", "b", "c")
58+
alert(numbers) // -4,-3,-2,-1,0,a,b,c,4,5,6,7,8,9,10,11,12,13
59+
</script>
60+
</body>
61+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Title</title>
6+
</head>
7+
<body>
8+
<script>
9+
// // 数组的合并
10+
// var nums1 = [1, 2, 3]
11+
// var nums2 = [100, 200, 300]
12+
// var newNums = nums1.concat(nums2)
13+
// alert(newNums) // 1,2,3,100,200,300
14+
//
15+
// newNums = nums1 + nums2
16+
// alert(newNums)
17+
//
18+
// nums1.eve
19+
20+
// 定义数组
21+
var names = ["abc", "cb", "mba", "dna"]
22+
23+
// 在names中所有的元素后面拼接-abc
24+
var newNames = names.map(function (t) {
25+
return t + "-abc"
26+
})
27+
alert(newNames)
28+
29+
// // 获取names中所有包含'a'字符的元素
30+
// var newNames = names.filter(function (t) {
31+
// return t.indexOf("a") != -1
32+
// })
33+
// alert(newNames)
34+
35+
// // forEach的使用
36+
// names.forEach(function (t) {
37+
// alert(t)
38+
// })
39+
40+
// // 判断数组中是否包含有a字符的字符
41+
// var flag = names.some(function (t) {
42+
// alert(t)
43+
// return t.indexOf("a") != -1
44+
// })
45+
// alert(flag)
46+
47+
// // 判断数组的元素是否都包含a字符
48+
// var flag = names.every(function (t) {
49+
// return t.indexOf('a') != -1
50+
// })
51+
// alert(flag)
52+
</script>
53+
</body>
54+
</html>
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Title</title>
6+
</head>
7+
<body>
8+
<script>
9+
// 1.定义数组
10+
var numbers = [1, 2, 3, 4]
11+
12+
// 2.for实现累加
13+
// var total = 0
14+
// for (var i = 0; i < numbers.length; i++) {
15+
// total += numbers[i]
16+
// }
17+
// alert(total) // 10
18+
19+
// 3.使用forEach
20+
// var total = 0
21+
// numbers.forEach(function (t) {
22+
// total += t
23+
// })
24+
// alert(total)
25+
26+
// 4.使用reduce方法
27+
var total = numbers.reduce(function (pre, cur) {
28+
return pre + cur
29+
})
30+
alert(total)
31+
</script>
32+
</body>
33+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Title</title>
6+
</head>
7+
<body>
8+
<script>
9+
// 栈类
10+
function Stack() {
11+
// 栈中的属性
12+
var items = []
13+
14+
// 栈相关的方法
15+
// 压栈操作
16+
this.push = function (element) {
17+
items.push(element)
18+
}
19+
20+
// 出栈操作
21+
this.pop = function () {
22+
return items.pop()
23+
}
24+
25+
// peek操作
26+
this.peek = function () {
27+
return items[items.length - 1]
28+
}
29+
30+
// 判断栈中的元素是否为空
31+
this.isEmpty = function () {
32+
return items.length == 0
33+
}
34+
35+
// 获取栈中元素的个数
36+
this.size = function () {
37+
return items.length
38+
}
39+
}
40+
41+
// // 模拟面试题
42+
// var stack = new Stack()
43+
//
44+
// // 情况下代码模拟
45+
// stack.push(6)
46+
// stack.push(5)
47+
// stack.pop() // 5
48+
// stack.push(4)
49+
// stack.pop() // 4
50+
// stack.push(3)
51+
// stack.pop() // 3
52+
// stack.pop() // 6
53+
// stack.push(2)
54+
// stack.push(1)
55+
// stack.pop() // 1
56+
// stack.pop() // 2
57+
58+
// 封装十进制转二进制的函数
59+
// decimal
60+
// binary
61+
function dec2bin(decNumer) {
62+
// 定义变量
63+
var stack = new Stack()
64+
var remainder;
65+
66+
// 循环除法
67+
while (decNumer > 0) {
68+
remainder = decNumer % 2
69+
decNumer = Math.floor(decNumer / 2)
70+
stack.push(remainder)
71+
}
72+
73+
// 将数据取出
74+
var binayriStrng = ""
75+
while (!stack.isEmpty()) {
76+
binayriStrng += stack.pop()
77+
}
78+
return binayriStrng
79+
}
80+
81+
// 测试函数
82+
alert(dec2bin(10))
83+
alert(dec2bin(233))
84+
alert(dec2bin(1000))
85+
</script>
86+
</body>
87+
</html>

0 commit comments

Comments
 (0)