태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

  




//연결리스트로 스택 구현
//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

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST