리그캣의 개발놀이터

자료구조 - STACKNODE 사용[C언어] 본문

프로그래밍 기본/자료구조

자료구조 - STACKNODE 사용[C언어]

리그캣 2018. 1. 21. 16:57

STACKNODE 사용


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef int element;
 
typedef struct stackNode{
 element data;
 struct stackNode *link;
} stackNode;
 
stackNode* top;
 
void push(element item)
{
 stackNode* temp=(stackNode *)malloc(sizeof(stackNode));
 temp->data=item;
 temp->link=top;
 top=temp;
}
 
element pop()
{
 element item;
 stackNode* temp=top;
 
 if(top=NULL){
  printf("\n\n Stack is empty !\n");
  return 0;
 }
 else{
  item=temp->data;
  top=temp->link;
  free(temp);
  return item;
 }
}
 
element peek()
{
 element item;
 if(top==NULL){
  printf("\n\n Stack is empty ! \n");
  return 0;
 }
 else{
  item=top->data;
  return item;
 }
}
 
void del()
{
 stackNode* temp;
 if(top==NULL){
  printf("\n\n Stack is empty !\n");
 }
 else{
  temp=top;
  top=top->link;
  free(temp);
 }
}
 
void printStack()
{
 stackNode* p=top;
 printf("\n STACK [");
  while(p){
   printf(" %c ",p->data);
   p=p->link;
  }
  printf(" ]");
}
 
void main(void)
{
 char a[]="abcdef";
 element i=0;
 top=NULL;
 
 printf("문자열:%s\n",a);
 
 while(a[i]!=NULL)
 {
    push(a[i]);
    i++;
 }
 printf("역순:");
 while(top!=NULL)
 {
        printf("%c",pop());
 }
 getchar();
}
 
 
 
cs


Comments