반응형

노드 3

트리 : 좌우 child를 가지는 트리 만들기

/* * http://sosal.tistory.com/ * made by so_Sal */ 트리도 딱히 어렵진 않습니다. 다만 링크드리스트 (연결리스트)의 구조가 복잡하게 연결되어있을 뿐 입니다. 우리의 디렉토리 풀더나, 회사 구조도 등이 트리로 구성되어있습니다. 주석을 찬찬히 살펴보면서 소스를 보시면 금방 이해하실 수 있을거라 생각합니다 ㅎㅎ. #include #include using namespace std; class node{ private: char value[20]; public: node(char* name){ strncpy(value,name,19); } // 생성자 함수를 이용해 빠르게 value 정의 char* getValue(){ return value; } // value를 리턴하..

링크드리스트 :: 추가된 리스트 원하는 위치에서 삭제, 찾기, 바꾸기

/* * http://sosal.tistory.com/ * made by so_Sal */ LINK_ 에서 단순히 리스트를 추가하고, 출력하는법을 보았습니다. 그럼 원하는 위치에 있는 노드를 어떻게 삭제할까요? 포인터를 이용해 하나하나 각 노드(마디)가 연결되어있으므로, 삭제하기 위해선 삭제되기 전의 노드가 삭제된 노드가 가리키는 위치를 알아야만 삭제를 하더라도 리스트가 깨져버리지 않습니다. 따라서 꼭 노드를 삭제하기 전에, 삭제될 노드 바로 앞의 노드는 삭제될 노드 뒤의 노드를 가리키도록 해줘야 하고, 연결이 끊어진 (삭제될) 노드는 삭제해줘야만 합니다. 만약 연결고리만 끊은 후, 삭제하지 않게 된다면 쓰지는 않지만, 메모리에 올라와있는 노드가 계속 쌓이게 됩니다. 따라서 꼭 삭제하기 전에, 삭제될 노..

링크드리스트 :: 간단한 기본 형태 (단방향)

/* * http://sosal.tistory.com/ * made by so_Sal */ #include using namespace std; class node{ private: int value; public: node(int a){ // 생성자 함수를 이용하여 value 초기화 value = a; } int getValue(){ // 값을 얻어오기 위한 함수 return value; } node *next; // 다음 노드를 가리킬 포인터 }; node* first; // 첫번째 노드 node* newNode; int count; // 노드의 숫자를 관리할 conter int main(){ node a(1); coutnext = newNode; // 연결! } } 출력하는 함수를 만들어봅시다. v..

반응형