2008秋季-计算机软件基础-0917课堂用例(1)

本文介绍了一种基于链表实现的链栈数据结构,并通过C语言代码详细展示了链栈的基本操作,包括初始化、入栈、出栈及显示栈内元素等过程。

链栈:

参见:http://www.cnblogs.com/emanlee/archive/2007/09/12/890647.html

#include < stdio.h >
#include
< stdlib.h >
struct   stacknode
{
 
int   data;
 
struct   stacknode  * next;
 };

//
struct  stacknode  *  InitialLinkList ()
{
 
struct  stacknode  *  head;
 head
= ( struct  stacknode  * )
     malloc(
sizeof ( struct  stacknode )); //
 head -> next = NULL;
 
return  head;
}

// 入栈
void  PushIntoStack( struct  stacknode  *  head,  int  value)
{
    
struct  stacknode  *  p;
    p
= ( struct  stacknode  * )malloc( sizeof ( struct  stacknode ));
    p
-> data = value;
    p
-> next = head -> next;
    head
-> next = p;
 }

 
void  PopFromStack( struct  stacknode  *  head)
{
 
struct  stacknode  *  p;
 
if (head -> next == NULL)
   printf(
" Pop Failed \n " );
 
else
    {
        p
= head -> next;
     head
-> next = p -> next;
    free(p);
     }
}
 
 
void  ShowStackElement( struct  stacknode  * head)
 {
    
struct  stacknode  *  p;
    p
= head -> next;
    printf(
" \n显示栈中元素:\n " );
    
while (p != NULL)
    {
        printf(
"  %d  " ,p -> data);
        p
= p -> next;
    }

 }

 
void  main()
 {
   
struct  stacknode  * head;
   head
= InitialLinkList();
   PushIntoStack(head,
1 );
   ShowStackElement(head);
    PushIntoStack(head,
2 );
   ShowStackElement(head);
    PushIntoStack(head,
3 );
   ShowStackElement(head);
   PopFromStack(head);
   ShowStackElement(head);
   PopFromStack(head);
   ShowStackElement(head);
    PopFromStack(head);
   ShowStackElement(head);
    PopFromStack(head);
   ShowStackElement(head);
    PopFromStack(head);
   ShowStackElement(head);
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值