node* treeList(node *n) { node *temp; if(n -> right == NULL && n -> left == NULL) { n -> left = n; n -> right = n; return(n); } else if(n -> right == NULL && n -> left != NULL) { n = appendL(n, treeList(n -> left)); return(n); } else if(n -> left == NULL && n -> right != NULL) { n = appendR(n, treeList(n -> right)); return(n); } else { temp = n -> right; n = appendL(n, treeList(n -> left)); n = appendR(n, treeList(temp)); return(n); } }
void SList::insertAfterL(SListElem* e, void* d) { if (e == tailL()) { appendL(d); } else if (e == NULL) { prependL(d); } else { SListElem* newe = new SListElem(d, e->nextL()); e->setNextL(newe); _len++; } }