完整代码
目录
ChainedStack.h
ChainedStack.c
ChainedStack.h
#pragma once #includeChainedStack.c#include #include typedef int DataType; typedef struct snode { DataType data; struct snode* next; }LSNode; //初始化 void StackInitiate(LSNode** head); //非空否 int StackNotEmpyt(LSNode* head); //入栈 void StackPush(LSNode* head, DataType x); //出栈 int StackPop(LSNode* head, DataType* d); //读取栈顶元素 int StackGet(LSNode* head, DataType* d); //撤销堆栈 void Destory(LSNode** head);
#include#include #include #include"ChainedStack.h"; void StackInitiate(LSNode** head) { *head = (LSNode*)malloc(sizeof(LSNode)); (*head)->next = NULL; } int StackNotEmpty(LSNode* head) { if (head->next == NULL) { printf("堆栈为空"); return 0; } else { return 1; } } void StackPush(LSNode* head, DataType x) { LSNode* p; p = (LSNode*)malloc(sizeof(LSNode)); p->data = x; p->next = head->next; head->next = p; } int StackPop(LSNode* head, DataType* d) { if (head->next == NULL) { printf("堆栈为空"); return 0; } else { LSNode* p; p = head->next; head->next = p->next; free(p); return 1; } } int StackTop(LSNode* head, DataType* d) { LSNode* p; p = head->next; if (p == NULL) { printf("堆栈为空"); return 0; } else { *d = p->data; return 1; } } void Destory(LSNode* head) { LSNode* p, * p1; p = head; while (p != NULL) { p1 = p; p = p->next; free(p1); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)