Created
November 7, 2014 11:05
-
-
Save LittleHelicase/e1dfd95c6d4f3d457797 to your computer and use it in GitHub Desktop.
Rotieren mit ADTs // source http://jsbin.com/qotaka
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>Rotieren mit ADTs</title> | |
<!-- ADT Liste implementiert als ArrayList --> | |
<script src="http://jsbin.com/cuqure.js"></script> | |
<!-- ADT Liste implementiert als LinkedList --> | |
<script src="http://jsbin.com/wowobu.js"></script> | |
<!-- ADT Liste Hilfsfunktionen. Exportiert | |
* listToString(L): gibt die Liste aus | |
* createListFromArray(L,array): erstellt die Liste und füllt sie mit dem Arrayinhalt | |
--> | |
<script src="http://jsbin.com/gavum.js"></script> | |
</head> | |
<body> | |
<script id="jsbin-javascript"> | |
var l1 = new ArrayList(); | |
var l2 = new LinkedList(); | |
createListFromArray(l1, [1,2,3,4]); | |
createListFromArray(l2, ["a","c","b"]); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
function rotateList(L,i){ // O(n * i) für Array und verkettete Liste | |
// O(i) für doppelt verkettete Liste | |
for(var k=0; k<i; k++){ // i Durchläufe | |
var x = L.retrieve(L.last()); // O(1) + O(1) | |
L.deletePos(L.last()); // O(1) // verkettet O(n) | |
L.insert(null,x); // O(n) // verkettet O(1) | |
} | |
} | |
rotateList(l1, 2); | |
rotateList(l2,2); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
console.log(l1.retrieve(1)); | |
console.log(l2.retrieve(1)); | |
console.log(l2.retrieve(l2.next(l2.first()))); | |
</script> | |
<script id="jsbin-source-javascript" type="text/javascript">var l1 = new ArrayList(); | |
var l2 = new LinkedList(); | |
createListFromArray(l1, [1,2,3,4]); | |
createListFromArray(l2, ["a","c","b"]); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
function rotateList(L,i){ // O(n * i) für Array und verkettete Liste | |
// O(i) für doppelt verkettete Liste | |
for(var k=0; k<i; k++){ // i Durchläufe | |
var x = L.retrieve(L.last()); // O(1) + O(1) | |
L.deletePos(L.last()); // O(1) // verkettet O(n) | |
L.insert(null,x); // O(n) // verkettet O(1) | |
} | |
} | |
rotateList(l1, 2); | |
rotateList(l2,2); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
console.log(l1.retrieve(1)); | |
console.log(l2.retrieve(1)); | |
console.log(l2.retrieve(l2.next(l2.first())));</script></body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var l1 = new ArrayList(); | |
var l2 = new LinkedList(); | |
createListFromArray(l1, [1,2,3,4]); | |
createListFromArray(l2, ["a","c","b"]); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
function rotateList(L,i){ // O(n * i) für Array und verkettete Liste | |
// O(i) für doppelt verkettete Liste | |
for(var k=0; k<i; k++){ // i Durchläufe | |
var x = L.retrieve(L.last()); // O(1) + O(1) | |
L.deletePos(L.last()); // O(1) // verkettet O(n) | |
L.insert(null,x); // O(n) // verkettet O(1) | |
} | |
} | |
rotateList(l1, 2); | |
rotateList(l2,2); | |
console.log(listToString(l1)); | |
console.log(listToString(l2)); | |
console.log(l1.retrieve(1)); | |
console.log(l2.retrieve(1)); | |
console.log(l2.retrieve(l2.next(l2.first()))); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment