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)
|
* Author: IsChristina (christinaxia77@foxmail.com), Justin (xiefahit@gmail.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const PrintUtil = require("../include/PrintUtil");
|
const { printLinkedList } = require("../include/PrintUtil");
|
||||||
const ListNode = require("../include/ListNode");
|
const { ListNode } = require("../include/ListNode");
|
||||||
|
|
||||||
/* 在链表的结点 n0 之后插入结点 P */
|
/* 在链表的结点 n0 之后插入结点 P */
|
||||||
function insert(n0, P) {
|
function insert(n0, P) {
|
||||||
@ -62,17 +62,17 @@ n1.next = n2;
|
|||||||
n2.next = n3;
|
n2.next = n3;
|
||||||
n3.next = n4;
|
n3.next = n4;
|
||||||
console.log("初始化的链表为");
|
console.log("初始化的链表为");
|
||||||
PrintUtil.printLinkedList(n0);
|
printLinkedList(n0);
|
||||||
|
|
||||||
/* 插入结点 */
|
/* 插入结点 */
|
||||||
insert(n0, new ListNode(0));
|
insert(n0, new ListNode(0));
|
||||||
console.log("插入结点后的链表为");
|
console.log("插入结点后的链表为");
|
||||||
PrintUtil.printLinkedList(n0);
|
printLinkedList(n0);
|
||||||
|
|
||||||
/* 删除结点 */
|
/* 删除结点 */
|
||||||
remove(n0);
|
remove(n0);
|
||||||
console.log("删除结点后的链表为");
|
console.log("删除结点后的链表为");
|
||||||
PrintUtil.printLinkedList(n0);
|
printLinkedList(n0);
|
||||||
|
|
||||||
/* 访问结点 */
|
/* 访问结点 */
|
||||||
const node = access(n0, 3);
|
const node = access(n0, 3);
|
||||||
|
@ -13,8 +13,8 @@ function randomNumbers(n) {
|
|||||||
}
|
}
|
||||||
// 随机打乱数组元素
|
// 随机打乱数组元素
|
||||||
for (let i = 0; i < n; i++) {
|
for (let i = 0; i < n; i++) {
|
||||||
let r = Math.floor(Math.random() * (i + 1));
|
const r = Math.floor(Math.random() * (i + 1));
|
||||||
let temp = nums[i];
|
const temp = nums[i];
|
||||||
nums[i] = nums[r];
|
nums[i] = nums[r];
|
||||||
nums[r] = temp;
|
nums[r] = temp;
|
||||||
}
|
}
|
||||||
@ -34,14 +34,12 @@ function findOne(nums) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Driver Code */
|
/* Driver Code */
|
||||||
function main() {
|
for (let i = 0; i < 10; i++) {
|
||||||
for (let i = 0; i < 10; i++) {
|
const n = 100;
|
||||||
let n = 100;
|
const nums = randomNumbers(n);
|
||||||
let nums = randomNumbers(n);
|
const index = findOne(nums);
|
||||||
let index = findOne(nums);
|
console.log(
|
||||||
console.log(
|
"\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]"
|
||||||
"\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]"
|
);
|
||||||
);
|
console.log("数字 1 的索引为 " + index);
|
||||||
console.log("数字 1 的索引为 " + index);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,7 @@
|
|||||||
* Author: Zhuo Qinyue (1403450829@qq.com)
|
* Author: Zhuo Qinyue (1403450829@qq.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const PrintUtil = require("../include/PrintUtil");
|
const { ListNode, arrToLinkedList } = require("../include/ListNode");
|
||||||
const ListNode = require("../include/ListNode");
|
|
||||||
|
|
||||||
|
|
||||||
/* 哈希查找(数组) */
|
/* 哈希查找(数组) */
|
||||||
function hashingSearchArray(map, target) {
|
function hashingSearchArray(map, target) {
|
||||||
@ -22,30 +20,26 @@ function hashingSearchLinkedList(map, target) {
|
|||||||
return map.has(target) ? map.get(target) : null;
|
return map.has(target) ? map.get(target) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function main() {
|
/* Driver Code */
|
||||||
const target = 3;
|
const target = 3;
|
||||||
|
|
||||||
/* 哈希查找(数组) */
|
/* 哈希查找(数组) */
|
||||||
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||||
// 初始化哈希表
|
// 初始化哈希表
|
||||||
const map = new Map();
|
const map = new Map();
|
||||||
for (let i = 0; i < nums.length; i++) {
|
for (let i = 0; i < nums.length; i++) {
|
||||||
map.set(nums[i], i); // key: 元素,value: 索引
|
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 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)
|
* Author: JoseHung (szhong@link.cuhk.edu.hk)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ListNode = require("../include/ListNode");
|
const { ListNode, arrToLinkedList } = require("../include/ListNode");
|
||||||
|
|
||||||
/* 线性查找(数组) */
|
/* 线性查找(数组) */
|
||||||
function linearSearchArray(nums, target) {
|
function linearSearchArray(nums, target) {
|
||||||
@ -34,15 +34,14 @@ function linearSearchLinkedList(head, target) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Driver Code */
|
/* Driver Code */
|
||||||
var target = 3;
|
const target = 3;
|
||||||
|
|
||||||
/* 在数组中执行线性查找 */
|
/* 在数组中执行线性查找 */
|
||||||
var nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
const nums = [1, 5, 3, 2, 4, 7, 5, 9, 10, 8];
|
||||||
var index = linearSearchArray(nums, target);
|
const index = linearSearchArray(nums, target);
|
||||||
console.log("目标元素 3 的索引 = " + index);
|
console.log("目标元素 3 的索引 = " + index);
|
||||||
|
|
||||||
/* 在链表中执行线性查找 */
|
/* 在链表中执行线性查找 */
|
||||||
var linkedList = new ListNode();
|
const head = arrToLinkedList(nums);
|
||||||
var head = linkedList.arrToLinkedList(nums);
|
const node = linearSearchLinkedList(head, target);
|
||||||
var node = linearSearchLinkedList(head, target);
|
console.log("目标结点值 3 的对应结点对象为 ", node);
|
||||||
console.log("目标结点值 3 的对应结点对象为 " + node);
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ListNode = require("../include/ListNode");
|
const { ListNode } = require("../include/ListNode");
|
||||||
|
|
||||||
/* 基于链表实现的队列 */
|
/* 基于链表实现的队列 */
|
||||||
class LinkedListQueue {
|
class LinkedListQueue {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
* Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ListNode = require("../include/ListNode");
|
const { ListNode } = require("../include/ListNode");
|
||||||
|
|
||||||
/* 基于链表实现的栈 */
|
/* 基于链表实现的栈 */
|
||||||
class LinkedListStack {
|
class LinkedListStack {
|
||||||
|
@ -11,37 +11,41 @@ class ListNode {
|
|||||||
val;
|
val;
|
||||||
next;
|
next;
|
||||||
constructor(val, next) {
|
constructor(val, next) {
|
||||||
this.val = (val === undefined ? 0 : val);
|
this.val = (val === undefined ? 0 : val);
|
||||||
this.next = (next === undefined ? null : next);
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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++) {
|
for (let i = 0; i < n; i++) {
|
||||||
let r = Math.floor(Math.random() * (i + 1));
|
const r = Math.floor(Math.random() * (i + 1));
|
||||||
let temp = nums[i];
|
const temp = nums[i];
|
||||||
nums[i] = nums[r];
|
nums[i] = nums[r];
|
||||||
nums[r] = temp;
|
nums[r] = temp;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user