C언어/문제풀다 하나씩

링크드리스트 건너건너 출력하기

mcdn 2020. 6. 23. 12:02
반응형
#include <iostream>
using namespace std;
struct node {
	char abc;
	node* next;
};
node* head;
node* last;
node buf[100];
int bufcnt;
void addnode(char c) {
	//head만 필요하다 
	buf[bufcnt] = { c, head };
	head = &buf[bufcnt++];
}

int main() {
	for (int i = 0; i < 9;i++) {
		char c;
		cin >> c;
		addnode(c);
	}
	
	for (node* p = head;p != NULL;p = p->next->next) {
		
		cout << p->abc;
		if (p->next == NULL) break;
	}

	return 0;


}

입력 

A B C D E F G 

출력 

G E C A 

 

문제는

여기서 p->next->next에서 계속 runtime error 이 난다는 점

그래서 

p->next가 NULL일때를 밑에 넣어야 

바로 break해서 나갈 수 있음 

반응형