2025/06 6

Chapter 8: Tree

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.Treedata 간에 hierarchy가 존재할 때 data를 표현하는 방식을 tree라고 한다. Nodes▶ Parents and Children Nodes▶ Root Node▶ Leaf Nodes Level▶ Level 0▶ Level 1▶ Level 2 Subtree▶ Left subtree▶ Right subtree Type Data▶ Char Type Data▶ Int Type Data Unique Path▶ A unique path exists from the root node to every other node.The path from E to Z: E -> C -> Z (acyclic structure)Binary Tree..

CS/자료구조 2025.06.08

Socket Programming in C: Client-server example

Client-server example using TCPserver#include #include #include #include #include #include #include #include ▶ 헤더파일 포함int main(void)▶ main 함수 시작struct sockaddr_in sa;int SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);▶ 소켓 주소 구조체 생성 + 소켓 생성socket(): 소켓 생성PF_INET: IPv4 프로토콜 사용SCOK_STREAM: TCP 사용IPPROTP_TCP: TCP 프로토콜socket()이 실패하면 -1 반환if (SocketFD == -1) { perror("cannot create socket"); e..

Socket Programming in C: Socket API functions

SocketSocket Address = TCP or UDP의 Port number + IP의 AddressSocket은 Transport Layer(4)와 Network Layer(3) 간 정보를 주고받기 위한 구멍이다. Header filesFileDescriptionsys/socket.h소켓 생성, 바인딩, 수신, 전송 등 소켓 함수들의 기본 정의 포함 (e.g., socket, bind, listen, accept)netinet/in.hAF_INET, AF_INET6, PF_INET, PF_INET6 등 표준 IP 주소와 TCP/UDP 포트 번호 정의sys/un.h동일 컴퓨터에서 실행되는 프로그램 간의 로컬 통신(UNIX 도메인 소켓 통신)을 위한 기능 제공arpa/inet.hIP 주소 변환 함수..

Programming Exercise: Lab #6

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.Exercise #1ProblemsImplement the SORTED LIST using doubly linked structure.1) insertItem(item): Insert the item to the proper position in the list.2) removeItem(item): Delete "item" in the listDeallocate (delete) the deleted item.template void DoubleSortedType::insertItem(ItemType item){ NodeType* newNode = new NodeType; NodeType* tempPtr = listData;..

CS/자료구조 2025.06.02

Chapter 7: Recursion

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.RecursionDefinitionsRecursive call: 재귀, 자기 자신을 호출하는 것Direct recursion: 직접적으로 자기 자신을 호출, e.g., a 함수가 a 함수 호출Indirect recursion: 다른 함수를 우회해 자기 자신을 호출, e.g., a 함수가 b 함수 호출 -> b가 a 함수 호출 Recursion의 필요성recursive한 프로그래밍은 모두 nonrecursive한 방법으로도 가능하다.즉, 반드시 필요한 것은 아니기에 recursion을 사용하지 않아도 모든 알고리즘 구현 가능하다. Recursive solutions can be less efficient than iterative solu..

CS/자료구조 2025.06.02