#include <rudiments/singlylinkedlist.h>
#include <rudiments/stdio.h>
int main(int argc, const char **argv) {
singlylinkedlist<uint32_t> sll;
// apppend nodes to the list
sll.append(new singlylinkedlistnode<uint32_t>(5));
sll.append(new singlylinkedlistnode<uint32_t>(6));
sll.append(new singlylinkedlistnode<uint32_t>(7));
// prepend nodes to the list
sll.prepend(new singlylinkedlistnode<uint32_t>(2));
sll.prepend(new singlylinkedlistnode<uint32_t>(1));
sll.prepend(new singlylinkedlistnode<uint32_t>(0));
// insert nodes
sll.insertAfter(sll.find(2),new singlylinkedlistnode<uint32_t>(3));
sll.insertAfter(sll.find(3),new singlylinkedlistnode<uint32_t>(4));
// move nodes around
sll.prepend(new singlylinkedlistnode<uint32_t>(8));
sll.prepend(new singlylinkedlistnode<uint32_t>(9));
sll.prepend(new singlylinkedlistnode<uint32_t>(10));
sll.moveAfter(sll.find(7),sll.find(8));
sll.moveAfter(sll.find(8),sll.find(9));
sll.moveAfter(sll.find(9),sll.find(10));
// length
stdoutput.printf("The list contains %lld nodes.\n\n",sll.getLength());
// print the list
stdoutput.write("Current contents:\n");
sll.print();
stdoutput.write('\n');
// print the first 3 values in the list
stdoutput.write("First 3 values:\n");
sll.print(3);
stdoutput.write('\n');
}