Stack의 개념과 구현
Language/자료구조2021. 12. 6. 14:30Stack의 개념과 구현

- 일종의 리스트 - 단, 데이터의 삽입과 삭제가 한쪽 끝에서만 이루어짐 - LIFO( Last-In, First-Out ) - 삽입/삭제가 일어나는 쪽을 스택의 top이라고 부른다. - push : 스택에 새로운 원소를 삽입하는 연산 - pop : 스택의 top에 있는 원소를 스택에서 제거하고 반환 - peek : 스택 top의 원소를 제거하지 않고 반환 - empty : 스택이 비었는지 검사 - 입력 수식의 괄호가 올바른지 검사 예) [a+b*{c/(d-e)}] + (d/e) - 단순히 여는 괄호와 닫느 괄호의 개수 비교 만으로는 부족 - 스택을 이용하여 검사 - 여는 괄는 스택에 push - 닫는 괄호가 나오면 스택..

[16] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -4 >
Network/컴퓨터 네트워크2021. 12. 3. 19:23[16] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -4 >

이때까지는 다음과 같이 이상적인 상황에서 생각하였습니다. - 모든 router는 동일하다 - Network는 평면적이다. 하지만 이는 이상적인 상활일 뿐 실제는 그렇지 않습니다. 확장성 : 수십억 대의 목적지 - Routing table에 모든 목적지를 다 저장할 수 없다. - Routing table교환은 link를 마비시킨다. 관리 자치 - Internet : network들의 network - 각 network 관리자는 자신의 network내의 routing을 원하는데로 제어하고자 할것이다. - 같은 관리제어에 속해있는 router들을 모아 그룹으로 만듦 > 자치시스템 - 같은 AS에 있는 router들은 동일한 rout..

[15] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -3 >
Network/컴퓨터 네트워크2021. 12. 2. 18:00[15] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -3 >

- Host와 router들 사이에서 network 계층 정보를 교환하는데 사용됨 - 오류 보고 : host,network,port,protocol 등에 도달 할 수 없음을 보고 - Ping에 의해 사용되는 echo request/reply - IP위의 network 계층 - ICMP message는 IP datagram안에 운반됨 - ICMP message 구성 : type,code & 오류를 야기시킨 IP datagram의 헤더와 첫 8byte

[14] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -2 >
Network/컴퓨터 네트워크2021. 12. 2. 17:41[14] CH4 네트워크 계층 < 인터넷 프로토콜(IP) -2 >

CIDR : Classless InterDomain Routing - 주소 중 subnet부분을 나타내기 위한 한 가지 방법 - 주소 형식 : a.b.c.d/x, (x:subnet 부분의 크기) Q : Host는 IP주소를 어떻게 얻는가 ? 목적 : host가 network에 접속할 때, 동적으로 IP주소를 부여해줌 - 사용 중인 주소에 대해서 임대 갱신할 수 있음 - 주소들의 재사용 허용 오른쪽의 그림은 왼쪽의 그림에서 설정된 네트워크상에서 수행될 DHCP 프로토콜 4단계의 과정을 보여준다. 이 그림에서 yiadder는 새롭게 도착한 클라이언트에 할..

[13] CH4 네트워크 계층 < 인터넷 프로토콜(IP) >
Network/컴퓨터 네트워크2021. 12. 2. 17:02[13] CH4 네트워크 계층 < 인터넷 프로토콜(IP) >

이 절에서는 인터넷에서 어떻게 주소 지정과 포워딩이 되는지를 알아보겠습니다. IP로 들어가기 전 인터넷 네트워크 계층을 구성하는 요소들을 생각해 봅시다. 밑의 그림과 같이 네트워크 게층은 3가지의 주요 요소가 있습니다. 첫째는 이절의 주요 주제인 IP프로토콜이고, 두번째 요소는 출발지에서 목적지까지 데이터그램이 따라가는 경로를 결정하는 라우팅 요소입니다. 마지막 요소는 데이터그램의 오류를 보고하고, 특정 네트워크 계층 정보에 대한 요구에 대해 응답하는 기능이다. 네트워크 계층 패킷을 데이터그램이라고 부른다는 것을 떠올리자. IP 데이터그램의 주요필드는 다음과 같다. 버전 번호 : 4비트로 데이터그램의 IP프로토콜 버전을 명시한다. 헤더 길이 : 데이터그램은 옵션을 포함하므로..

[16] C review < 이중연결리스트 Music Library Program 기본동작들 >
Language/자료구조2021. 11. 29. 14:04[16] C review < 이중연결리스트 Music Library Program 기본동작들 >

이제부터 이중연결리스트를 응용한 알고리즘을 살펴보겠습니다. 다음은 Music Library Program의 실행예입니다. 다음은 저장된 음악 프로그램 목록입니다. 아티스트와 음악 저장경로를 구분하기위해 #을 사용하였습니다. 다음은 Artist,Song,path간에 자료구조를 나타낸 그림입니다. 좀 더 자세히 살펴보면, Artist 노드안에 이중연결리스트로 구현된 SNode가 존재하고 하나의 SNode안에 Song노드가 존재하여 해당 Song의 정보를 나타내고 있습니다. 여기서 주의해야 할 점은 Song은 SNode안의 하나의 데이터일 뿐 연결리스트가 아닙니다. 이처럼 번거롭게 자료구조를 편성한 이유는 즉, 노드와 데이터를 분리하는 이유는 노래들에 대해서 다양한 접근경로를 제공하기 위해서입니다. 예를들어 ..

[15] C review < 이중연결리스트 > 과제 수정 필요
Language/자료구조2021. 11. 29. 11:49[15] C review < 이중연결리스트 > 과제 수정 필요

단방향 연결 리스트(single linked list)의 한계 - 어떤 노드의 앞에 새로운 노드를 삽입하기 어려움 - 삭제의 경우에 항상 삭제할 노드의 앞 노드가 필요 - 단방향의 순회만이 가능 이중 연결 리스트 - 각각의 노드가 다음(next)노드와 이전(previous)노드의 주소를 가지는 연결 리스트 - 양방향의 순회(traverse)가 가능. 각 노드에 하나의 문자열이 저장된다고 가정하자. #include #include struct node { char *data; struct node next; struct node prev; }; typedef struct node Node; Node *head; Node *tail; int size = 0; 노드를 삽입하는 경우를 알아봅시다. 이 과정은 순..

image