라벨이 링크드 리스트 삽입인 게시물 표시

[C/C++]단 방향 LinkedList 이용한 삽입,삭제,검색,갱신

이미지
C나 C++을 이용할 때면, LinkedList를 많이 쓰는데, 항상 쓸 때 마다 잊어 먹는 적이 많아서... 적어 두려 합니다. LinkeList는 구조체로 되어있는 포인터에 다음 메모리 주소를 가르키는 link를 연결하여, 그 값에 접근 하는 형식의 구조를 띄고 있습니다. LinkedList의 기본 개념은 구조체 안에 다음 구조체의 주소를 저장하는 개념입니다. 이런식의 선형적 구조를 띄는것이 일반적입니다. 이를 메모리에 나타내 보면 아마 위와 같은 그림으로 표현이 가능할 듯 싶습니다. 이를 토대로 기본적으로 구현해볼 기능은  CRUD(Create, Remove, Update, Delete) 기능입니다. 구조체를 일단 선언 합니다 char* / int / int 를 삽입하여 보겠습니다. 우선 삽입, 이런 식으로, 초기화 하는 부분,  Insert 하는 부분을 구분하여 구현 하신다면, 좀더 객관적으로 소스코드 분석 및 구현이 가능할 것입니다. 이를 토대로 List에 insert를 해보는 코드를 삽입하였고, 아래는 결과화면 입니다. 모든 값이 제대로 들어 간 것을 확인하실수 있습니다. 다음으로 삭제 입니다. 삭제의 경우에는 경우의 수가 존재합니다. 1) LinkedList의 처음 부분을 삭제하면서, next에 값이 존재 할 때, mData->next에 값이 없다면 문제 될 것이 없습니다. 하지만, 값이 존재한다면, mData가 delete 되면서 mData->next의 주소를 찾을 수가 없습니다. 그렇기에 삭제 전에, mData->next를 mData로 바꾸는 작업이 필요합니다. 2) LinkedList의 중간 부분을 삭제 할 때, 어떻게 보면, 가장 고려할 부분이 없을 것 같습니다. 단순히 mData->next 를 mData...

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)