《数据结构与算法分析(c语言版)》学习笔记③栈

栈的操作:push pop。
栈的表头依旧不放任何数据。表头即是栈顶,push,pop都在此处进行!

栈的单元组成

typedef struct node
{
	int element;
	node*next;
}node;
创建一个栈
CreateStack(void)
{
	node* S
	S=malloc(sizeof(node));
	if (s==NULL)printf("out of space!!!");
	*S.next=NULL;
	return S;
}
判断一个栈是否为空
isempty( node*S)//输入表头的指针 
{
	return *S.next==NULL;//如果是空栈返回1,不是返回0 
}
进栈操作(push)
void push(int x,node*s)//sΪ±íÍ·µÄÖ¸Õë 
{
	node*temp;
	temp=malloc(sizeof(node));
	if(temp==NULL)printf("out of space!!!");
	*temp.element=x;
	*temp.next=*s.next;
	*s.next=temp;
}

返回栈顶元素
top(node* s)
{
	if (isempty(s)) {printf("empty stack!!!");return 0;}
	else return *(*s.next).element;
}

出栈操作(pop)
pop(node*s)
{
	node* temp;
	if(isempty(s))printf("empty stack!!!");
	else
	{
		temp=*s.next;
		*s.next=*temp.next;
		free(temp);
	}
} 
空栈操作
MakeEmpty(node*s)
{
	while(*s.next!=NULL)
	pop(s);
}


你可能感兴趣的:(Learning,Notes)