컴공 일기103
게시글 주소: https://orbi.kr/00057410624
"Stack"이라는 자료구조를 배열로 구현한 예제입니다.
#include <stdio.h>
#include <stdlib.h>
typedef struct tagNode
{
int Data;
}Node;
typedef struct tagArrayStack
{
int Capacity;
int Top;
Node* Nodes;
} ArrayStack;
void AS_CreatStack(ArrayStack** Stack, int Capacity)
{
(*Stack) = (ArrayStack*)malloc(sizeof(ArrayStack));
(*Stack)->Nodes = (Node*)malloc(sizeof(Node) * Capacity);
(*Stack)->Capacity = Capacity;
(*Stack)->Top = 0;
}
void AS_DestroyStack(ArrayStack* Stack)
{
free(Stack->Nodes);
free(Stack);
}
void AS_Push(ArrayStack* Stack, int Data)
{
int Position = Stack->Top;
Stack->Nodes[Position].Data = Data;
Stack->Top++;
}
int AS_Pop(ArrayStack* Stack)
{
int Position = --(Stack->Top);
return Stack->Nodes[Position].Data;
}
int AS_Top(ArrayStack* Stack)
{
int Position = Stack->Top - 1;
return Stack->Nodes[Position].Data;
}
int AS_GetSize(ArrayStack* Stack)
{
return Stack->Top;
}
bool AS_IsEmpty(ArrayStack* Stack)
{
return (Stack->Top == 0);
}
int main()
{
int i = 0;
ArrayStack* Stack = NULL;
AS_CreatStack(&Stack, 10);
AS_Push(Stack, 3);
AS_Push(Stack, 37);
AS_Push(Stack, 11);
AS_Push(Stack, 12);
printf("Capacity : %d, Size : %d, Top: %d\n\n", Stack->Capacity, AS_GetSize(Stack), AS_Top(Stack));
for (i = 0; i < 4; i++)
{
if (AS_IsEmpty(Stack))
{
break;
}
printf("Popped : %d, ", AS_Pop(Stack));
if (!AS_IsEmpty(Stack))
printf("Current Top : %d\n", AS_Top(Stack));
else
printf("Stack is Empty.\n");
}
AS_DestroyStack(Stack);
return 0;
}
[실행결과]
Capacity : 10, Size : 4, Top: 12
Popped : 12, Current Top : 11
Popped : 11, Current Top : 37
Popped : 37, Current Top : 3
Popped : 3, Stack is Empty.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
좋아요 1 답글 달기 신고
-
좋아요 1 답글 달기 신고
-
푹푹 0
으항
-
어제 받았고 오늘 집모로 풀어봤습니다 미적으로 응시했고 전체적으로 난이도는 23수능...
-
6단원 조금 맛봄 오늘부터 1단원부터 제대로 해야지
-
본인은 살면서 한 번도 n제 풀어본적 없는데 올해 3모 빼고 1학년 때부터 계속...
-
일주일끝 2
금요일이면 난 끝난거야
-
캬
-
반려견.. 키워 봐야 아는듯 어줍잖게 말고 본인이 직접 데려오는 동물에 대한 인식도 같이 바뀌는듯
-
우리집 가난햇어서 유딩쯤 나이때 이거사줘<< 한번도 해본적없음 안되는걸 알기에 애들...
-
물마심 > 오줌쌈 > 마심 > 오줌쌈 > 마심 무한동력이 아니라 무현동력임
-
물리치료랑 간호조무사 쪽이었음 의대 지망이 다 화학 동아리로 가는 이유가 있었구나
-
어케 해야할까요... 실모 풀때마다 실수가 계속나와서 스트레스네요
-
물리학과 + 의학과 복수전공해야됨 ㄷㄷㄷ
-
5덮 결과 0
화작: 90 ( 23, 27, 32, 34) 독서론은 1번이 너무 이상한 답이어서...
-
점수맞히면 5000덕 13
힌트1 고2 20년 6월 수학 힌트 2 컨디션 저조하고 머리아픔 힌트 3 고2 3모...
-
확통 기출 2회독 거의 다 끝나가는데 교사경 vs N제 추천 좀 1
확통은 교사경이 나아요 아님 N제가 나아요? 2개다는 못 풀 듯 수완풀고 수완...
-
작년엔 이맘때였는데 정확한 날짜아시는분 계실까요?
-
사실 트렌드라 하긴 좀 뭐한데 암튼 그런게 체육이랑 심리학, 물리치료랑 재활치료...
-
원래 디자인 관심 없는데 이건 지리누 ㄷㄷ
-
우리집 수원이랑 한시간 - 한시간반 거린데 얼마나 쳐 놀앗으면…
-
블러드파운틴 0
-
센츄되네 11
이왜센 ㅋ
-
반수공부 ㅜㅜ 1
22333 화미물지였고 6모 응시 신청해놨고 물지->생윤사문 사탐런이고 작수끝나고...
-
풀어보죠. 9월은 수열 무서웡
-
왜 6시간 남음?ㅠ
-
돈을 못벌겠네
-
3,7,29
-
지하철 두 정거장 지나침ㅋㅋ 다시 빽해야지
-
근데 아싸라 축제를못감..
-
님들은 다이어리 왜 쓰시나요
-
어렸을때 천식 있었는데 감기도 약간 천식성 기침하고 그랬는데 수업 시간에 기침이...
-
ㄴㅇㅅ~~
-
6모 대비 실모 0
임정환t랑 이명학t는 대비 실모 안 나오나요? 일주일전부터 시뮬 돌리면서...
-
엉엉
-
도대체 어디서 보는거임? 열렸다는데 아무리 찾아도 어디서 보는지 ㅁㄹ겟음 설마 하루...
-
소득 상위구간들이나 누적 재산 많은 구간에다가 국내 소비 의무화 법안을 추진하는거임...
-
심찬우 현강 1
지금 현재 언매 5등급이고 심찬우 현강 듣는 현역 학생입니다.. 지금 인강이랑 현강...
-
언어와 매체 질문인데 4번이 왜 답인건가요? ㅓ는 ㅣ 모음이 아닌건가요? ㅣ 모음의...
-
후기 남김ㄱㄷ
-
수험생커뮤니티에 3
중독된 나
-
다니시는 분들 분위기 괜찮나요? 6평 이후에 가볼까 생각중인데 추천하시나여
-
부자보단 카푸어 느낌이 강해져서 그런지 강남엔 포르쉐가 더 많이 보이는듯
-
오늘의 실모 0
이감 3-1 언매 91 킬캠 2회 88(15,28찍맞) 더데유데 2회 80...
-
아니면 그냥 시간되면 바로 눌러도 되나요
-
낙곱새같은 맛인가용
-
건동홍은 좀 림들거같은데
-
너무 모르는 질문을 하는듯ㅡㅡ 그런가요???
-
교생쌤이 내번호따간후 오마카세 사줌 늦은 시간대라 교생쌤집에서 잠 쌤한테 나한테 왜...