반응형

C# 91

0330_단일 연결리스트로 stack 구현하기

연결리스트로 구현한 stack 연결리스트는 그 구조가 일렬로 데이타를 연결하고 있다는 점에서 STack구현에 쉽게 이용 다만, 마지막 노드 뒤에 새 노드를 추가하는게 아니라 스택의 top 포인터에 새 노드를 추가하면서 새 노드의 넥스트 포인터가 이전 노드를 가리키도록 해야한다. //핵심 추가에 STack에서 데이타를 꺼내오는 동작은 top 포인터의 데이타를 리턴// 데이터 가져오는부분 하면서 top 포인터를 top의 아래 노드로 설정하면 된다. // 데이터를 설정하는 부분 top 포인트는 참조// // 잘 안되면 그림을 그려보라 // top 이 없어 -> top 만들기 // 노드 추가 -> 노드의 넥스트를 탑으로 // top을 새로운 노드로 바꿔준다. // pop => top에 데이터를 빼고, top n..

C#/자료구조 2021.03.30

0330 _ 고정배열로 Stack 구현하기

스택 자료구조 스택은 가장 최근에 넣은 데이타를 먼저 꺼내서 사용하는 선형적인 자료구조이다. LIFO (라스트인 퍼스트 아웃)라고 불리우는 자료구조, 나중에 저장된 것을 먼저 꺼내지는 구조를 가지고있다. top 이라는 키워드 사용 // 제일 위에 있는 값 스택은 새 데이타를 넣을 때 위쪽(top)에 데이타를 추가(push)하고, 데이타를 꺼낼 때는 다시 위쪽에서부터 데이타를 가져오는(pop) 구조, 스택은 흔히 배열이나 연결 리스트를 사용하여 구현 - 배열로 구현한 Stack 가장 단순한 구현은 고정된 배열을 할당하고 스택의 top 인덱스를 사용하여 데이타를 넣고 가져오는 것을 구현한 방식, 추가하는 것을 Push , 마지막 추가된 요소를 제거하며 가져오는 것을 pop이라함 이 푸시와 팝은 기본적인 행위..

C#/자료구조 2021.03.30

0330_단일 연결 리스트로 큐 구현하기

노드 생성, + Node 형식의 head, tail 생성 -- Linked 리스트를 활용한 큐 큐에 새 데이타를 추가하기 위해서 연결리스트의 마지막에 새 노드를 추가, 데이타를 꺼내오기 위해서는 연결 리스트의 첫 노드(head)를 읽어오면 된다. 단일 연결리스트를 구현하면서 head와 tail를 갖고하게 Tail를 통해 Enqueue 하고, Head를 통해 Dequeue하면 기능을 간단히 구현할 수있다. 먼저 단일 연결리스트를 만들어준다. 노드 생성, using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace study17 { public ..

C#/자료구조 2021.03.30

0330_원형배열을 사용한 큐 구현

큐 자료구조 큐는 도착한 순서대로 데이타를 꺼내서 사용하는 선형적인 자료구조이다. 흔히 FIFO(퍼스트 인 퍼스트 아웃)이라고 불리운다. 먼저 저장된 것이 먼저 꺼내진다. 만약 즉시 처리하지 않아도 되는 일이라면 큐에 넣어서 차례대로 순서를 처리할때 사용한다. 큐는 흔희 배열이나 연결리스트를 사용하여 구현하곤한다. 우선순위 큐와 데크는 한 방향이아니라 나가는 쪽에서 들어오고 나가나는것이다. 고정배열을 사용한 큐 구현 고정된 배열을 할당하고 ★Front와 ★Rear인덱스를 관리하면서 큐를 구현 데이타를 추가할때 Rear 인덱스에 넣는다. 데이타를 읽고나 제거할때는 Front 인덱스 제거할때는 Front 인덱스를 다음 요소로 이동허가나, Front 앞으로 땡겨옮는 방식 큐를 구현할때 고정배열이 갖는 문제점을..

C#/자료구조 2021.03.30

0329 _ 단일연결 리스트 (2단계까지) /

연결리스트 데이터와 포인터를 가지고있다.노드들이 한 줄로 쭉 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 노드가 데이터와 포인터를 가지고잇다. 노드들이 한 방향으로 각 노드가 다음 노드를 가리키고있는 리스트는 단일 연결리스트 각 노드가 이전 노드와 다음 노드를 모두 가리키는 양방향은 이중 연결 리스트 포인터는 우리가 알고있는 참조이다. 단일 연결 리스트를 구현하기 위해서는 먼저 노드 클래스와 이를 연결한 링크드리스트클래스가 필요한다. 기본적으로 데이타 필드와 그 다음 노드를 가리키는 포인터로 만들어져있다. 단일 연결 리스트 클래스는 리스트의 첫 노드를 가리키는 헤드 head필드를 가지게 되는데, 이 head를 사용하여 전체 리스트를 순차적으로 엑세스하게된다. 1.노드 생성 2. head의 변수 선..

C#/자료구조 2021.03.29

0329 _ 동적배열

1. 2칸짜리 배열을 만들고, 3칸까지 값을 넣어본다. 2. 2칸에 값이 가득 찼기 때문에 인덱스 오류가 뜬다. 3. 수용량 * 2 의 양의 새로운 배열은 만들어준다. 4.하지만, 그냥 계속 늘리면 안되기 때문에 if 문을 사용하여서 count (인덱스의 양)이 수용양보다 크거나 같으면 새로운 배열을 만들어주기로한다. 5.그리고 4칸짜리 빈 temp 배열에 arr의 소요들을 집어 넣어준다. 6.arr 배열에 temp의 값을 집어 넣는다. // temp는 Add 인스턴스가 사라지면서 소멸하게 되고, arr에 값이 변경이 된다. ---- using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst..

C#/자료구조 2021.03.29
반응형