카테고리 없음

중복제거를 하는 정렬된 Single linked list 만들기

Sumin Lim 2018. 3. 12. 02:10
반응형

http://thispointer.com/remove-duplicate-elements-from-a-sorted-singly-linked-list/



Set A= {1, 2, 3, 4, 4, 5, 6, 7, 7, 7, 7, 9, 89}의 중복을 없애면,  Set B={1, 2, 3, 4, 5, 6, 7, 9, 89}가 된다.

Set C={1, 2, 2, 2, 2, 5, 6, 8} 이라 할 때, 어떤 element가 중복이 되는지 발견하려면, Linked list를 모두 뒤져야함.

만약에 찾고자하는 값이 발견되었고 1),

이를 찾았다면 Linked list에서 제거한다 2),




#include <iostream>


struct Node {

int value;

Node *next;

Node(int val) {

value = val;

next = NULL;

}

};


Node * createListFromArray( int *arr, int arrSize){


Node *nodePtr = NULL;

Node *rootNodePtr = NULL;

Node *lastNodePtr = NULL;


for (int i = 0; i < arrSize; i++) 

{

if (!nodePtr) {

nodePtr = new Node(*(ptr_i));

if (!rootNodePtr) {

rootNodePtr = nodePtr;

if (lastNodePtr) {

lastNodePtr->next = nodePtr;

}

}


}

lastNodePtr = nodePtr;

nodePtr = nodePtr->next;


}

return rootNodePtr;


}

int main(void) {

int arr[] = { 1,2,3,4,4,5,6,7,7,7,7,9,89 };

Node *ptr = createListFromArray(arr, sizeof(arr)/sizeof(int));

return 0;

}



 



반응형