Windows3 연결리스트 - Linked list(C++ 코드구현, 소스코드, 개념) 연결리스트 (Linked list) 연결리스트는 데이터를 저장하는 자료구조로, 각각의 데이터 요소가 포인터를 통해 다음 요소와 연결되어 있는 방식으로 동작하는 비선형 자료구조입니다. 작동 원리 연결리스트는 노드(node)라고 불리는 개별적인 데이터 요소들이 링크(link)를 통해 연결되어 동작합니다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어있습니다. 첫 번째 노드를 가리키는 특별한 포인터인 헤드(head)포인터도 존재합니다. 더 자세하게고 쉽게 사진으로 설명하겠습니다. 사진에서, 데이터필드와 링크필드를 담고있는 한 객체가 노드입니다. 각 노드는 이전에 설명했듯이, 데이터를 담고있는 데이터필드와 다음 노드를 가리키는 포인터인 링크필드로 구성되어있습니다. 연결리스트는 다음 노드를 가리키는 .. 2023. 7. 8. 스택 - Stack (C++ 코드구현, 소스코드, 개념) 스택 (STACK) 스택은 데이터 구조로, LIFO(Last In, First Out) 원칙에 따라 동작되는 선형 자료구조입니다. 한마디로 가장 최근에 추가된 항목이 가장 먼저 제거되는 방식으로 작동하는 것을 의미합니다. 작동 원리 스택은 PUSH와 POP이라는 연산을 통해 동작되는 자료구조입니다. 앞서말한 LIFO라는 원칙에 따라 동작되어, PUSH 연산은 테트리스와 같이 한곳에 계속 쌓이는 형태입니다. 마찬가지로, POP 연산은 가장 최근에 추가된 데이터를 제거하는 역할을 합니다. 아래사진에서 작동방식을 확실하게 이해할 수 있습니다. 이후 스택을 C++언어로 구현한 코드와 함께 설명하도록 하겠습니다. WIKIPEDIA Stack (abstract data type) - Wikipedia #includ.. 2023. 4. 3. 커널 드라이버 구조체 (Kernel Dirver Structures) 커널 모드 드라이버를 프로그래밍할 때 많이 사용되는 데이터 구조체의 설명 IRP (I/O Request Packet) IRP는 운영체제에서 Input/Output 요청을 하기위해 사용되는 데이터 구조체입니다. 커널 드라이버에서는 IRP를 사용하여 컴퓨터인 하드웨어와 상호작용을 하고, 컴퓨터와 통신하게 됩니다. 또한 윈도우 운영체제에서의 유저모드 프로그램들과의 통신을 처리할 수 있습니다. 커널 드라이버에서의 IRP는 디바이스 객체와 함께 사용되는 파일객체, 메모리 버퍼 및 기타의 것들이 포함되어있습니다. I/O요청의 상태를 추적하고 요청이 완료되면 해당 요청의 결과를 보고하는 구조체입니다. 참고 IRP (wdm.h) - Windows drivers | Microsoft Learn DEVICE_OBJECT .. 2023. 4. 3. 이전 1 다음 반응형