Linked list로 stack구현입니다.. ㅠ
아리
#includestdio.h
#includestdlib.h
#define size 5;int i=0;void push(int i, struct element item);
void Pop(int i);
void IsEmpty();
void IsFull();
void END();int main()
{
typedef struct{
int key;
}element;typedef struct stack *stp;
typedef struct stack{
element data;
stp link;
};
stp stack[10];int n;
int num;do{
printf(Push is #1\n);
printf(Pop is #2\n);
printf(End is #3\n);scan_f(%d,&n); // 42번째줄
if(n==1)
{
printf(%d번째에 Push 하고싶은 숫자를 입력하시오\n,i);
scanf(%d,&num); // 48번째줄
Push(i,num);i++;
}else if(n==2)
{
Pop(i);printf(정상적으로 POP되었고 그 원소는 %d 입니다\n,stack[i]);
}else if(n==3)
{
END();
}
}void Push(int i, struct element item)
{struct stack temp;
struct stack temp = (*int)malloc(sizeof(*temp));
struct stack temp.data=item;
struct stack temp.link=stack[i];
struct stack stack[i]=temp;}void Pop(int i)
{struct stack temp = stack[i];struct stack item;if(!temp)
IsEmpty();item = temp.data;
stack[i]=temp.link;
free(temp);
}
void IsFull()
{
printf(Stack is Full\n);}void IsEmpty()
{
printf(Stack is Empty\n);
}void END()
{
exit(0);
}ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ음.. 구조책에 나와있는 수드코드를 거의 입력하듯 했는데..도대체 어디가 잘못된거죠.. ? 제가 구조체를 잘 몰라서인지 아무리 백번봐도 제눈으로 맞는데 논리는 ㅠㅠstruct stack 를 stp 로 사용해도 되는거 아닌가요 .. ?책에는 그렇게 되있는데 도대체 . .뭐가 맞는건지 이렇게 해도 저렇게해도 오류가나버리니 도대체 알수가없네요 ㅠㅠ너무.. 난잡하고 보시기 힘드시겠지만 한번만 시간내주셔서 도와주십쇼 고수님들 ㅠㅠ저번에 스택이랑 큐 짜고 자신감얻었는데 ... 좌절입니다 .. ㅠㅠ
-
자랑 2024-04-03
우선 struct 선언과 정의 부분을 전역으로 빼고 해야 puzh pop 에서 사용할수 있을듯..