10.5:实现链栈的代码
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}*linklist;
linklist create1()
{
linklist s = (linklist)malloc(sizeof(struct Node));
if( NULL == s )
{
return NULL;
}
s->data = 0;
s->next = NULL;
return s;
}
linklist insert_head(linklist L , int element)
{
linklist s=create1();
if( NULL == L)
{
s->data=element;
L = s;
}
else
{
s->next = L->next;
L->next = s;
s->data = L->data;
L->data = element;
}
return L;
}
void output1(linklist L)
{
if(NULL == L)
{
printf("链表为空\n");
return;
}
linklist t;
t = L;
while(t != NULL)
{
printf("%d ",t->data);
t=t->next;
}
puts("");
}
int main(int argc, const char *argv[])
{
linklist L = NULL;
int element = 0;
char str[10] = "";
do
{
printf("请输入插入的值:");
scanf("%d",&element);
L = insert_head(L,element);//头插
printf("是否继续? yes/no:");
scanf("%s",str);
}while(strcmp(str,"no"));
printf("遍历输出:\n");
output1(L);
return 0;
}
运行结果: