您的位置:首页 > 其它

小白笔记--------------------链栈

2015-10-28 23:08 316 查看
用的头插法,比尾插法简单
/*2015/10/27*/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
typedef struct stark
{
int k;
struct stark *down;
int size;
}stark;
int main(int argc,char **argv)
{
stark *p;
p = (stark *)malloc(sizeof(stark));
Init(p);
int i;
for(i = 0;i<10;i++)
{
push(p,i);
}
pop(p);
print(p);
return 0;
}
Init(stark * p)//初始化链栈
{
p->size = 0;
p->down = NULL;
}
int Getsize(stark *p)//获得栈的大小
{
return p->size;
}
push(stark * p,int i)//压栈
{
stark *q;
q = (stark*)malloc(sizeof(stark));
q->k = i;
q->down = p->down;
p->down = q;
p->size++;
}
pop(stark *p)//出栈
{
stark * q;
q = p->down;
p->down = q->down;
free(q);
p->size--;

}
print(stark *p)//遍历栈
{
printf("stark size:%d\n",Getsize(p));
while(p->down != NULL)
{
printf("%d\t",p->down->k);
p = p->down;
}
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: