header-img
Info :
728x90

1. ๊ทธ๋ƒฅ ์ฝ”๋“œ์—์„œ ๋ฐœ๋ผ์ค„ ๋•Œ

/** ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ธ ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Single Linked List) ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š” */

// ๋…ธ๋“œ ๊ฐ์ฒด ์ƒ์„ฑ
var Node = function(data) {
    // ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ
    this.data = data;
    this.nextNode = null;
}

// Head ์ง€์ •
var Head = null;

// ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž
var Node1st = new Node("๊น€๋ฉ๋ฉ๐Ÿถ");
// Head์— ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ ์ฐธ์กฐ
head = Node1st;

// ๋‘๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž
var Node2nd = new Node("์ด๋ƒฅ๋ƒฅ๐Ÿฑ")
// ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ ์ฃผ์†Œ์ง€ ๊ฐ’์œผ๋กœ ๋‘๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐ
Node1st.nextNode = Node2nd;

// ์„ธ๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž
var Node3rd = new Node("๋ฐ•๊ฟ€๊ฟ€๐Ÿท")
// ๋‘๋ฒˆ์งธ ๋…ธ๋“œ์˜ ๋‹ค์Œ ์ฃผ์†Œ์ง€ ๊ฐ’์œผ๋กœ ์„ธ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐ
Node2nd.nextNode = Node3rd;

// ๋„ค๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž
var Node4th = new Node("์ตœ๋ผ๋ผ๐Ÿต")
// ๋‹น์—ฐํžˆ ์„ธ๋ฒˆ์งธ ๋…ธ๋“œ ๋‹ค์Œ ์ฃผ์†Œ์ง€ ๊ฐ’ = ๋„ค๋ฒˆ์งธ ๋…ธ๋“œ ์ฐธ์กฐํ•˜๋„๋ก
Node3rd.nextNode = Node4th;

// ๋‹ค์„ฏ๋ฒˆ์งธ ๋…ธ๋“œ ์˜์ฐจ์˜์ฐจ
var Node5th = new Node("์ •์งน์งน๐Ÿฃ")
// ๋„ค๋…ธ๋‹ค์ฃผ = ๋‹ค๋…ธ์ฐธ
Node4th.nextNode = Node5th;

// ํ™•์ธ ํ•œ๋ฒˆ ๊ฐˆ๊ฒŒ์š”
var linkedListText = "";
var currentNode = head;
while(currentNode != null){
    if(linkedListText != "") {
        linkedListText += " | "
    }
    // ๋…ธ๋“œ ๋ฐ์ดํ„ฐ
    linkedListText += currentNode.data;
    // ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ ์ง€์ •
    currentNode = currentNode.nextNode;
}

console.log(linkedListText);
// [Result] ๊น€๋ฉ๋ฉ๐Ÿถ | ์ด๋ƒฅ๋ƒฅ๐Ÿฑ | ๋ฐ•๊ฟ€๊ฟ€๐Ÿท | ์ตœ๋ผ๋ผ๐Ÿต | ์ •์งน์งน๐Ÿฃ

2. ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ ๋„ฃ์–ด์ฃผ๋Š” ์‹์œผ๋กœ ํ•˜๋ฉด ?

/** 
 * ์œ„์—๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ง€์ •ํ•ด์ค€ ๊ฑฐ๊ณ ์š”..
 * ๋งŒ์•ฝ์— ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ add ํ•˜๊ฒŒ ๋˜๋ฉด์š”?
 * - ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ ๊ฐ์ฒด๋ฅผ ํ•ญ์ƒ ์ฐพ์•„์ค˜์•ผํ•˜๋Š”๋ฐ์š” ...
 * 
 * ๋ ˆ์ธ  ๊ณ 
 */

// HEAD
var head = null;

// ํ•จ์ˆ˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณผ๊ฒŒ์š”
function Nodeadd(data) {
	
    // ์šฐ์„  ๋…ธ๋“œ ๊ฐ์ฒด ์ƒ์„ฑ
	var node = new Node(data);
	
	// HEAD๊ฐ€ NULL์ด๋ฉด ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ(Node)๊ฐ€ ์—†๋Š” ๋นˆ ์ƒํƒœ(Empty)์ด๋ฏ€๋กœ ์ƒ์„ฑ๋œ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐ
    // header ์ง€์ •ํ•ด์ค„๊ฑฐ์—์š”
	if (head == null) {
		head = node;
	} else {
		// HEAD๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋…ธ๋“œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์—ฐ๊ฒฐ๋œ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. 
		var currentNode = head;
		while(currentNode.nextNode != null) {
			currentNode = currentNode.nextNode;
		}
		// ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ์— ์ƒ์„ฑ๋œ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐ์‹œํ‚ต๋‹ˆ๋‹ค.
		currentNode.nextNode = node;
	}
}

Nodeadd("๐Ÿถ๊น€๋ฉ๋ฉ๐Ÿถ");
Nodeadd("๐Ÿฑ์ด๋ƒฅ๋ƒฅ๐Ÿฑ");
Nodeadd("๐Ÿท๋ฐ•๊ฟ€๊ฟ€๐Ÿท");
Nodeadd("๐Ÿฃ์ •์งน์งน๐Ÿฃ");

// ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ
var linkedListText = "";
var currentNode = head;
while(currentNode != null) {
	if (linkedListText != "") {
		linkedListText += " ๐Ÿ’” "
	}
	linkedListText += currentNode.data;
	currentNode = currentNode.nextNode;
}

console.log(linkedListText);

// [Result] ๐Ÿถ๊น€๋ฉ๋ฉ๐Ÿถ ๐Ÿ’” ๐Ÿฑ์ด๋ƒฅ๋ƒฅ๐Ÿฑ ๐Ÿ’” ๐Ÿท๋ฐ•๊ฟ€๊ฟ€๐Ÿท ๐Ÿ’” ๐Ÿฃ์ •์งน์งน๐Ÿฃ

์ฒซ๋ฒˆ์งธ ๊ฒฐ๊ณผ ๊ฐ’๊ณผ ๋‘๋ฒˆ์งธ ๊ฒฐ๊ณผ ๊ฐ’ ์บก์ณ !

728x90
๋”๋ณด๊ธฐ
FRONTEND/React