more testing on linkedlist methods
This commit is contained in:
@@ -10,11 +10,11 @@ export default class ListNode<T> extends Node<T> {
|
||||
this.prev = prev || null;
|
||||
}
|
||||
|
||||
setNextNode(node: ListNode<T>) {
|
||||
setNextNode(node: ListNode<T> | null) {
|
||||
this.next = node;
|
||||
}
|
||||
|
||||
setPreviousNode(node: ListNode<T>) {
|
||||
setPreviousNode(node: ListNode<T> | null) {
|
||||
this.prev = node;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,6 +54,12 @@ export default class LinkedList<T> {
|
||||
if (!this.head) this.head = newTail;
|
||||
}
|
||||
|
||||
addManyToTail(...items: T[]) {
|
||||
for (let each of items) {
|
||||
this.addToTail(each);
|
||||
}
|
||||
}
|
||||
|
||||
removeHead(): T | null {
|
||||
const toRemove = this.head;
|
||||
|
||||
@@ -74,9 +80,13 @@ export default class LinkedList<T> {
|
||||
const toRemove = this.tail;
|
||||
if (!toRemove) return null;
|
||||
|
||||
const newTail = toRemove.nextNode;
|
||||
const newTail = toRemove.prevNode;
|
||||
this.tail = newTail;
|
||||
|
||||
if (this.tail) {
|
||||
this.tail.setNextNode(null);
|
||||
}
|
||||
|
||||
if (toRemove == this.head) {
|
||||
this.removeHead();
|
||||
}
|
||||
@@ -177,4 +187,24 @@ export default class LinkedList<T> {
|
||||
|
||||
return targetNode;
|
||||
}
|
||||
|
||||
print() {
|
||||
let output = "";
|
||||
let current = this.head;
|
||||
while (current !== null) {
|
||||
if (current.data) {
|
||||
if (typeof current.data == "string") {
|
||||
output += " " + current.data;
|
||||
} else {
|
||||
output += " " + JSON.stringify(current.data);
|
||||
}
|
||||
} else {
|
||||
output += " null";
|
||||
}
|
||||
|
||||
current = current.nextNode;
|
||||
}
|
||||
|
||||
console.log(output);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ChordQuality, EventData } from "./index";
|
||||
import LinkedList from "../LinkedList/index";
|
||||
import ListNode from "../LinkedList/ListNode";
|
||||
|
||||
const firstEvent: EventData = {
|
||||
root: "C",
|
||||
@@ -41,7 +42,16 @@ const fourthEvent: EventData = {
|
||||
***************/
|
||||
|
||||
const eventlist = new LinkedList<EventData>();
|
||||
eventlist.addManyToHead(firstEvent, secondEvent, thirdEvent, fourthEvent);
|
||||
eventlist.addManyToTail(firstEvent, secondEvent, thirdEvent, fourthEvent);
|
||||
|
||||
// eventlist.removeHead();
|
||||
// eventlist.removeTail();
|
||||
|
||||
// eventlist.removeAtPosition(3);
|
||||
// eventlist.removeByData(fourthEvent);
|
||||
|
||||
// const thirdnode = eventlist.findByData(thirdEvent) as ListNode<EventData>;
|
||||
// console.log(eventlist.findByNode(thirdnode));
|
||||
|
||||
console.log(eventlist);
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import data from "./lib/helpers/sample";
|
||||
const { eventlist } = data;
|
||||
|
||||
eventlist.print();
|
||||
|
||||
// export default content;
|
||||
|
||||
// const parser = new DOMParser();
|
||||
|
||||
Reference in New Issue
Block a user