|
//연결리스트로 스택 구현
//08.10.27 OP.Park
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct pnode{
char data;
struct pnode *next;
};
typedef struct pnode NODE;
NODE* push(NODE*, char);
NODE* push(NODE* p, char ch){
NODE* temp;
temp=(NODE*)malloc(sizeof(NODE));
if(temp==NULL){
printf("메모리 할당 에러\n");
exit(0);
}
temp->data = ch;
temp->next = p;
p = temp;
return (p);
}
NODE* pop(NODE *p, char *value){
NODE* temp;
if(p==NULL){
printf("스택이 비었습니다.\n");
exit(0);
}
*value = p->data;
temp = p;
p = p->next;
free(temp);
return (p);
}
void prtList(NODE* p){
if(p==NULL){
printf("스택이 비었습니다.\n");
exit(0);
}
printf("top->");
while(p->next != NULL){
printf("%c -> ",p->data);
p = p->next;
}
printf("%c\n", p->data);
}
void main(){
NODE* top = NULL;
char value;
char sel,data;
while(sel !=9){
printf("1.PUSH, 2.POP, 3. 보기, 9. 종료 : ");
sel = getche();
printf("\n");
switch(sel){
case '1':
printf("입력 : ");
data = getche();
top = push(top, data);
printf("\n");
break;
case '2':
top = pop(top, &value);
printf("팝 : %c\n",value);
break;
case '3':
prtList(top);
printf("\n");
break;
case '9':
printf("프로그램을 종료합니다.\n");
exit(0);
}
}
'프로그래밍' 카테고리의 다른 글
| 연결리스트를 이용한 스택구현 (0) | 2008/10/28 |
|---|---|
| [알고리즘/C언어] - 오름차순 (2) | 2008/10/23 |








