(1)实现顺序栈的基本操作(初始化、判断栈空、判断栈满、入栈、出栈),并利用栈实现十进制转换为二进制

如题所述

第1个回答  推荐于2016-09-21
#include<stdio.h>
#include<iostream>
using namespace std;
#include<malloc.h>
typedef char ElemType;
typedef struct node
{
ElemType data;
struct node *next;
} LinkStack;
void InitLinkStack (LinkStack * & s)
{
s=(LinkStack *)malloc(sizeof(LinkStack));
s->next=NULL;
}
int IsEmptyLinkStack (LinkStack *s)
{
return (s->next==NULL);
}
void PushLinkStack(LinkStack* &s , ElemType x)
{
LinkStack *p;
p=(LinkStack*)malloc(sizeof(LinkStack));
p->data=x;
p->next=s->next;
s->next=p;
}
int PopLinkStack (LinkStack* & s, ElemType &x)
{
LinkStack * p;
if(s->next==NULL)
return 0;
p=s->next;
x=p->data;
s->next=p->next;
free(p);
return 1;
}
int GetLinkStackTop (LinkStack* s, ElemType &x)
{
if(s->next==NULL)
return 0;
x=s->next->data;
cout<<x;
/*printf("%c",x);*/
return 1;
}
int main()
{
LinkStack *L;
char m[99];
int i=0;;
InitLinkStack(L);
gets(m);
while(m[i]!='#')
{
PushLinkStack(L,m[i]);
GetLinkStackTop(L,m[i]);
i++;
}
return 0;
}本回答被提问者采纳
第2个回答  2010-10-10
严蔚敏 数据结构 清华大学出版社 自己去看
相似回答