考研相關的單鏈表題目
阿新 • • 發佈:2020-07-23
//將一個沒有頭結點的結點資料為字元的單鏈表,分解成還有字母字元、數字字元和其他字元的三個帶頭節點的迴圈連結串列 void OneToThree(LinkedList l,LinkedList la,LinkedList ld,LinkedList lo) { while(l != nullptr) { LinkedList r = l; l = l->next; if(r->val >= 'a' && r->val <= 'z' || r->val >= 'A' && r->val <= 'Z') { r->next = la->next; la->next = r; } else if(r->val >= 0 && r->val <= 9) { r->next = ld->next; ld->next = r; }else { r->next = lo->next; lo->next = r; } } } //不帶頭結點的刪除有序連結串列中元素相同的結點 //如 1 2 2 3 返回 1 2 3 LinkedList DelSame_None(LinkedList head) { LinkedList pre = head; LinkedList p = pre->next; while(p != nullptr) { if(p->val == pre->val) { LinkedList tmp = p; p = p->next; free(tmp); } else { pre->next = p; pre = p; p = p->next; } } pre->next = p; } //帶頭結點的刪除有序連結串列中元素相同的結點 LinkedList DelSame(LinkedList la) { LinkedList pre = la->next; LinkedList p = pre->next; while(p != nullptr) { if(p->val == pre->val) { LinkedList tmp = p; p = p->next; free(tmp); } else { pre->next = p; pre = p; p = p->next; } } pre->next = p; }