1.malloc函数:要求返回字节数,并且强制转换为指针类型。
2.->是指针类型访问用到的,而.是对象类型访问得到的。
3.记得count--。
包括:链栈结点的定义,链栈的定义,进栈,出栈。
#include<iostream>
#include<malloc.h>
#define Maxsize 50
using namespace std;
typedef int ElemType;
//链栈结点的定义
typedef struct SNode{
ElemType data;//栈中存放的元素
struct SNode *next;//下一个结点
}SNode , *SLink;//链栈的结点
//链栈的定义
typedef struct LinkStack{
SLink top;//栈顶指针
int count;//栈的个数
}LinkStack;
//进栈
bool Push(LinkStack *S , ELemType x){
SLink p = (SLink)malloc(sizeof(SNode));//malloc要求返回字节数,并且强制转换为实际的指针类型
p->data = x;//如果是指针访问,用->;如果是对象访问,用.//
p->next = S->top;//next指向当前栈顶
S->top = p;//栈顶指针指向新的元素//
S->count ++;
return true;
}
//出栈操作
bool Pop(LinkStack *S , ElemType x){
if(S->top == -1) return false;
x = S->top->data;
SLink p = S->top; //设置一个指针指向栈顶元素//
S->top = S.top->next;//top指针向后移动//
free(p); //释放指针//
S->count --;
return true;
}