inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

독하게 C를 배운 사람을 위한 선형 자료구조

Stack과 Queue

스택의 POP코드 질문드립니다.

해결된 질문

260

최종원

작성한 질문수 10

0

안녕하세요 오랜만에 질문드립니다.

현재 가정을 헤드노드->Test03->Test02->Test01->테일노드 이렇게 있다고 가정을 했을 때

pPop->pNext->pPrev = g_TailNode.pPrev; 이 코드에서 질문있습니다.

제가 이해한것을 풀어쓰느라 조금 길거 같습니다.

흐름상 pop 구조체 포인터가 Test03노드를 가리키고 있고 헤드의 다음노드를 Test02로 바꾸는것까지 이해했습니다.

그다음 pop 다음 노드의 이전 노드 즉 Test02의 이전 노드가 테일 노드의 이전 노드를 가리킨다고 하는데 현재 흐름 상 보면 Test03의 다음노드의 이전노드가 Test01노드라고 하는걸로 해석이 됩니다.

제가 어느 부분에서 이해를 못한 건지 모르겠습니다.

그리고 다음 코드를 이렇게 고쳐도 출력에는 이상이 없는 것으로 확인됩니다.

c 코딩-테스트 알고리즘 vc++

답변 1

0

널널한 개발자

스택에 노드가 하나 뿐이면 모르겠지만 pPop->pNext 노드가 Test03의 다음 노드가 될 수 있는데 그렇다면 Test02가 되어야 하겠습니다. 그런데 그것이 g_TailNode와 관련이 있을 수도 있고 아닐 수도 있습니다. 즉, 스택에 더 꺼낼 노드가 남아 있다면 g_TailNode가 바로 등장할 이유는 없겠습니다.

그리고 출력에 이상이 없다고 했는데...

Test03->Test02->Test01 이렇게 세 노드가 있는 상태에서 데이터를 하나 Pop한 후 출력해보시기 바랍니다. 아마도 유실되는 노드가 있을 것입니다. 이에 관한 문제의 원인을 찾아 분석해보시기를 권합니다. 😄

05_adtFileIO 개정이력에 대한 질문

0

44

2

마지막 열의 노드를 삭제하였을때 읽기 엑세스 위반 발생 건

0

62

2

첫번째 루프에서 최소값을 못찾았는데 계속 진행하는 이유가 무엇인가요?

0

49

1

[질문]: [섹션4] -> [2중 연결 리스트로 전환] -> [21:30]

0

133

2

인덱스정렬 강의, 04_ListAndIndex질문드립니다.

0

126

1

예제는 어디서 다운로드 받을 수 있나요?

0

180

2

04_MultiIndex 예제에서 질문이 있습니다

0

121

1

헤드노드에 관해..

0

234

3

AddNewNode 함수 구현시 질문입니다.

0

161

2

Event Loop

0

194

1

인덱스정렬 강의, 04_ListAndIndex질문드립니다.

0

194

1

CPU의 다른 이름 Machine 강의 질의

0

274

4

adtFileIO 예제코드관련 질문 있습니다.

0

171

1

ADT강의 관련 질문 있습니다.

0

232

2

RangeSearch002 의 singlelist.c 파일 중 질문 있습니다.

0

193

1

섹션4 자료 자체와 정렬된 인덱스 분리 내용 질문

0

253

2

자료 자체와 정렬된 인덱스 분리 강의에서 질문

0

238

2

구현 연습에 대한 개인적 의문

0

280

1

05_adtFileIO 프로젝트 문의

0

320

2

CLI UI적용 강의에서 질문드립니다.

0

337

1

SearchToRemove와 RemoveNode가 분리되어야 할 필요가 있을까요?

0

296

1

05_adtFileIO 프로젝트 문의

0

258

1

자료 자체와 정렬된 인덱스 분리 (인덱스 정렬) - 인덱스 범위 코드에 버그가 있어서 질문 드립니다.

0

306

2

강의자료 관련

0

207

1