#include
#include
#define null 0
typedef struct node
{
int data;
struct node *next;
}linkstack;
linkstack *top;
linkstack push(linkstack *top,int x) ////入棧
{
linkstack *p;
p=(linkstack)malloc(sizeof(linkstack));
p->data=x;
p->next=top;
top=p;
return top;
}
linkstack* pop(linkstack *top) //出棧
{
linkstack *p;
if(!top)
{
printf("空鏈棧");
return null;
}
p=top;
top=top->next;
free(p); //釋放存儲空間
return top;
}
void print(linkstack *top) //輸出棧
{
linkstack *p;
p=top;
while(p!=null) ////剛開始棧頂的next項為空////
{
printf("%d\n",p->data);
p=p->next;
}
}
void main()
{
int x,i;
top=(linkstack*) malloc(sizeof(linkstack));
scanf("%d",&x);
top->data=x;//頭部賦值。
top->next=null;
// initstack(top);
for(i=1;i<=3;i++)
{
scanf("%d",&x);
top=push(top,x);//返回一個指針。
}
print(top);
top=pop(top);//返回一個指針。
}
怎麼加數制轉換和字符匹配?
任意進制數的轉換(鏈表棧的實現)
http://wenku.baidu.com/link?url=Z-9pODFQbcqTWbuz3pvfoRU3xWxRnXHYXIhYmfQRfZ27DbyD8JBKa7S3ugYkmrTmTX0hDYSXrwzIHuO9cNz8zsQ6adiDYYqtyQgzjl_FDVS