mirror of
https://github.com/krahets/hello-algo.git
synced 2025-02-02 22:43:50 +08:00
Update the coding style for JavaScript (#329)
* Fix bug before commit 5eae708
* Update queue.md
* Update the coding style for JavaScript
---------
Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
parent
6778557056
commit
6ad8a66a7c
@ -4,8 +4,8 @@
|
||||
* Author: IsChristina (christinaxia77@foxmail.com), Justin (xiefahit@gmail.com)
|
||||
*/
|
||||
|
||||
const PrintUtil = require("../include/PrintUtil");
|
||||
const ListNode = require("../include/ListNode");
|
||||
const { printLinkedList } = require("../include/PrintUtil");
|
||||
const { ListNode } = require("../include/ListNode");
|
||||
|
||||
/* 在链表的结点 n0 之后插入结点 P */
|
||||
function insert(n0, P) {
|
||||
@ -62,17 +62,17 @@ n1.next = n2;
|
||||
n2.next = n3;
|
||||
n3.next = n4;
|
||||
console.log("初始化的链表为");
|
||||
PrintUtil.printLinkedList(n0);
|
||||
printLinkedList(n0);
|
||||
|
||||
/* 插入结点 */
|
||||
insert(n0, new ListNode(0));
|
||||
console.log("插入结点后的链表为");
|
||||
PrintUtil.printLinkedList(n0);
|
||||
printLinkedList(n0);
|
||||
|
||||
/* 删除结点 */
|
||||
remove(n0);
|
||||
console.log("删除结点后的链表为");
|
||||
PrintUtil.printLinkedList(n0);
|
||||
printLinkedList(n0);
|
||||
|
||||
/* 访问结点 */
|
||||
const node = access(n0, 3);
|
||||
|
@ -13,8 +13,8 @@ function randomNumbers(n) {
|
||||
}
|
||||
// 随机打乱数组元素
|
||||
for (let i = 0; i < n; i++) {
|
||||
let r = Math.floor(Math.random() * (i + 1));
|
||||
let temp = nums[i];
|
||||
const r = Math.floor(Math.random() * (i + 1));
|
||||
const temp = nums[i];
|
||||
nums[i] = nums[r];
|
||||
nums[r] = temp;
|
||||
}
|
||||
@ -34,14 +34,12 @@ function findOne(nums) {
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
function main() {
|
||||
for (let i = 0; i < 10; i++) {
|
||||
let n = 100;
|
||||
let nums = randomNumbers(n);
|
||||
let index = findOne(nums);
|
||||
console.log(
|
||||
"\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]"
|
||||
);
|
||||
console.log("数字 1 的索引为 " + index);
|
||||
}
|
||||
for (let i = 0; i < 10; i++) {
|
||||
const n = 100;
|
||||
const nums = randomNumbers(n);
|
||||
const index = findOne(nums);
|
||||
console.log(
|
||||
"\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]"
|
||||
);
|
||||
console.log("数字 1 的索引为 " + index);
|
||||
}
|
||||
|
@ -4,9 +4,7 @@
|
||||
* Author: Zhuo Qinyue (1403450829@qq.com)
|
||||
*/
|
||||
|
||||
const PrintUtil = require("../include/PrintUtil");
|
||||
const ListNode = require("../include/ListNode");
|
||||
|
||||
const { ListNode, arrToLinkedList } = require("../include/ListNode");
|
||||
|
||||
/* 哈希查找(数组) */
|
||||
function hashingSearchArray(map, target) {
|
||||
@ -22,30 +20,26 @@ function hashingSearchLinkedList(map, target) {
|
||||
return map.has(target) ? map.get(target) : null;
|
||||
}
|
||||
|
||||
function main() {
|
||||
const target = 3;
|
||||
/* Driver Code */
|
||||
const target = 3;
|
||||
|
||||
/* 哈希查找(数组) */
|
||||
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||
// 初始化哈希表
|
||||
const map = new Map();
|
||||
for (let i = 0; i < nums.length; i++) {
|
||||
map.set(nums[i], i); // key: 元素,value: 索引
|
||||
}
|
||||
const index = hashingSearchArray(map, target);
|
||||
console.log("目标元素 3 的索引 = " + index);
|
||||
|
||||
/* 哈希查找(链表) */
|
||||
let head = new ListNode().arrToLinkedList(nums)
|
||||
// 初始化哈希表
|
||||
const map1 = new Map();
|
||||
while (head != null) {
|
||||
map1.set(head.val, head); // key: 结点值,value: 结点
|
||||
head = head.next;
|
||||
}
|
||||
const node = hashingSearchLinkedList(map1, target);
|
||||
console.log("目标结点值 3 的对应结点对象为" );
|
||||
PrintUtil.printLinkedList(node);
|
||||
/* 哈希查找(数组) */
|
||||
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||
// 初始化哈希表
|
||||
const map = new Map();
|
||||
for (let i = 0; i < nums.length; i++) {
|
||||
map.set(nums[i], i); // key: 元素,value: 索引
|
||||
}
|
||||
const index = hashingSearch(map, target);
|
||||
console.log("目标元素 3 的索引 = " + index);
|
||||
|
||||
main();
|
||||
/* 哈希查找(链表) */
|
||||
let head = arrToLinkedList(nums)
|
||||
// 初始化哈希表
|
||||
const map1 = new Map();
|
||||
while (head != null) {
|
||||
map1.set(head.val, head); // key: 结点值,value: 结点
|
||||
head = head.next;
|
||||
}
|
||||
const node = hashingSearch1(map1, target);
|
||||
console.log("目标结点值 3 的对应结点对象为", node);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Author: JoseHung (szhong@link.cuhk.edu.hk)
|
||||
*/
|
||||
|
||||
const ListNode = require("../include/ListNode");
|
||||
const { ListNode, arrToLinkedList } = require("../include/ListNode");
|
||||
|
||||
/* 线性查找(数组) */
|
||||
function linearSearchArray(nums, target) {
|
||||
@ -34,15 +34,14 @@ function linearSearchLinkedList(head, target) {
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
var target = 3;
|
||||
const target = 3;
|
||||
|
||||
/* 在数组中执行线性查找 */
|
||||
var nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||
var index = linearSearchArray(nums, target);
|
||||
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||
const index = linearSearchArray(nums, target);
|
||||
console.log("目标元素 3 的索引 = " + index);
|
||||
|
||||
/* 在链表中执行线性查找 */
|
||||
var linkedList = new ListNode();
|
||||
var head = linkedList.arrToLinkedList(nums);
|
||||
var node = linearSearchLinkedList(head, target);
|
||||
console.log("目标结点值 3 的对应结点对象为 " + node);
|
||||
const head = arrToLinkedList(nums);
|
||||
const node = linearSearchLinkedList(head, target);
|
||||
console.log("目标结点值 3 的对应结点对象为 ", node);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
||||
*/
|
||||
|
||||
const ListNode = require("../include/ListNode");
|
||||
const { ListNode } = require("../include/ListNode");
|
||||
|
||||
/* 基于链表实现的队列 */
|
||||
class LinkedListQueue {
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
||||
*/
|
||||
|
||||
const ListNode = require("../include/ListNode");
|
||||
const { ListNode } = require("../include/ListNode");
|
||||
|
||||
/* 基于链表实现的栈 */
|
||||
class LinkedListStack {
|
||||
|
@ -11,37 +11,41 @@ class ListNode {
|
||||
val;
|
||||
next;
|
||||
constructor(val, next) {
|
||||
this.val = (val === undefined ? 0 : val);
|
||||
this.next = (next === undefined ? null : next);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a linked list with an array
|
||||
* @param arr
|
||||
* @return
|
||||
*/
|
||||
arrToLinkedList(arr) {
|
||||
const dum = new ListNode(0);
|
||||
let head = dum;
|
||||
for (const val of arr) {
|
||||
head.next = new ListNode(val);
|
||||
head = head.next;
|
||||
}
|
||||
return dum.next;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list node with specific value from a linked list
|
||||
* @param head
|
||||
* @param val
|
||||
* @return
|
||||
*/
|
||||
getListNode(head, val) {
|
||||
while (head !== null && head.val !== val) {
|
||||
head = head.next;
|
||||
}
|
||||
return head;
|
||||
this.val = (val === undefined ? 0 : val);
|
||||
this.next = (next === undefined ? null : next);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ListNode
|
||||
/**
|
||||
* Generate a linked list with an array
|
||||
* @param arr
|
||||
* @return
|
||||
*/
|
||||
function arrToLinkedList(arr) {
|
||||
const dum = new ListNode(0);
|
||||
let head = dum;
|
||||
for (const val of arr) {
|
||||
head.next = new ListNode(val);
|
||||
head = head.next;
|
||||
}
|
||||
return dum.next;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list node with specific value from a linked list
|
||||
* @param head
|
||||
* @param val
|
||||
* @return
|
||||
*/
|
||||
function getListNode(head, val) {
|
||||
while (head !== null && head.val !== val) {
|
||||
head = head.next;
|
||||
}
|
||||
return head;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
ListNode,
|
||||
arrToLinkedList,
|
||||
getListNode
|
||||
};
|
||||
|
@ -2647,8 +2647,8 @@ $$
|
||||
}
|
||||
// 随机打乱数组元素
|
||||
for (let i = 0; i < n; i++) {
|
||||
let r = Math.floor(Math.random() * (i + 1));
|
||||
let temp = nums[i];
|
||||
const r = Math.floor(Math.random() * (i + 1));
|
||||
const temp = nums[i];
|
||||
nums[i] = nums[r];
|
||||
nums[r] = temp;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user