栈看起来是十分简单,并且会让人觉得没什么用啊!确实,但是栈用着方便啊,对于栈顶的元素伸手就来。
!:需要讲解的地方:无
结构体的创建:
typedef struct {
int top;
char data[max];
}*listPtr, list;
初始化:
listPtr init() {
listPtr head = (listPtr)malloc(sizeof(list));
head->top = -1;
return head;
}
压栈:
void push(listPtr head, char c) {
if (head->top > max - 1) return;
head->top++;
head->data[head->top] = c;
}
弹栈:
char pop(listPtr head) {
char tempchar = head->data[head->top];
head->top--;
return tempchar;
}
完整代码:
#include#include #define max 10 typedef struct { int top; char data[max]; }*listPtr, list; listPtr init() { listPtr head = (listPtr)malloc(sizeof(list)); head->top = -1; return head; } void push(listPtr head, char c) { if (head->top > max - 1) return; head->top++; head->data[head->top] = c; } char pop(listPtr head) { char tempchar = head->data[head->top]; head->top--; return tempchar; } void print(listPtr head) { for (int i = head->top; i >= 0; i--) { printf("%c ", head->data[i]); } } void test() { listPtr head = init(); for (char i = 'a'; i <= 'd'; i++) { push(head, i); } pop(head); print(head); } int main() { test(); return 0; }



