데이터 구조 학습 의 길 (3) 스 택 의 간단 한 실현

스 택 의 기본 기능 을 간단하게 실현 하 였 으 니, 잘못 쓴 곳 이 있 으 면 연락 주세요.메모 나 글 아래 메 일 로 보 내 주세요.
저 는 mac 시스템 에서 썼 기 때문에 include 가 필요 한 가방 은 다른 시스템 과 약간 다 를 수 있 습 니 다.
# include 
# include 

typedef struct Node{
	int data;
	struct Node * pNext;
}*PNODE, NODE;

typedef struct Stack{
	struct Node * pButtom;
	struct Node * pTop;
}*PSTACK, STACK;

void init(PSTACK);

void showStack(PSTACK);

bool isEmpty(PSTACK);

bool push(PSTACK, int);

bool pop(PSTACK, int *);

bool clear(PSTACK);


int main(void){
	PSTACK pStack;
	init(pStack);
	showStack(pStack);
	push(pStack, 5);
	push(pStack, 1);
	push(pStack, 4);
	push(pStack, 9);
	showStack(pStack);
	int val;
	pop(pStack, &val);
	printf("%d
", val); showStack(pStack); clear(pStack); showStack(pStack); return 0; } void init(PSTACK pStack){ pStack->pButtom = (PNODE)malloc(sizeof(NODE)); if (pStack->pButtom==NULL){ printf("%s
", " !"); exit(-1); } pStack->pTop = pStack->pButtom; pStack->pTop->pNext=NULL; printf("%s
", " !"); return; } void showStack(PSTACK pStack){ if (isEmpty(pStack)){ printf("%s
", " !"); return; } PNODE p = pStack->pTop; while(p!=pStack->pButtom){ printf("%d ", p->data); p = p->pNext; } printf("
"); return; } bool push(PSTACK pStack, int val){ PNODE pNew = (PNODE)malloc(sizeof(NODE)); if (pNew==NULL){ printf("%s
", " !"); return false; } pNew->data = val; pNew->pNext = pStack->pTop; pStack->pTop = pNew; return true; } bool pop(PSTACK pStack, int * val){ if (isEmpty(pStack)){ printf("%s
", " , !"); return false; } PNODE p = pStack->pTop; pStack->pTop = p->pNext; * val = p->data; free(p); return true; } bool clear(PSTACK pStack){ if (isEmpty(pStack)){ printf("%s
", " , !"); return false; } PNODE p = pStack->pTop; PNODE q = NULL; while(p != pStack->pButtom){ q = p->pNext; free(p); p = q; } pStack->pTop = pStack->pButtom; return true; } bool isEmpty(PSTACK pStack){ if (pStack->pTop == pStack->pButtom) return true; return false; }

email: [email protected]
저작권 성명: 블 로그 작성 이 쉽 지 않 습 니 다. 전재 할 때 출처 를 밝 혀 주 십시오. 대단히 감사합니다!
https://blog.csdn.net/zyy_2018/article/details/79765642

좋은 웹페이지 즐겨찾기