c/c++双链表正排序

#include<stdio.h> 
#include<stdlib.h> 
#include<malloc.h> 
struct list{ 
  int data; 
  struct list *next; 
  struct list *pre; 
  }; 
typedef struct list node; 
typedef node *link; 
link front=NULL,rear,ptr,head=NULL; 

link push(int item){ 
link newnode=malloc(sizeof(node)); 
 newnode->data=item; 
 if(head==NULL)
 {
 head=newnode; 
 head->next=NULL; 
 head->pre=NULL;
 rear=head;
 }
 else
 {
 rear->next=newnode;
 newnode->pre=rear;
 newnode->next=NULL;
 rear=newnode;
 }
 return head; 
 } 

void makenull(){           
 front=NULL; 
 rear=NULL; 
 } 

empty(){ 
  if(front==NULL) 
   return 1; 
  else 
   return 0; 
  } 

int tops(){ 
   if(empty()) 
    return NULL; 
   else 
    return rear->data; 
   } 

void pop(){ 
   if(empty()) 
    printf("stack is empty!/n"); 
   else 
    rear=rear->pre; 
   } 

void display(link l){ 
    link p; 
    p=l; 
    while(p!=NULL){ 
      printf("%d->",p->data); 
      p=p->next; 
    } 


void main(){ 
int n,i; 
printf("input your first data!/n"); 
scanf("%d",&n); 
front=push(n); 
   /*another data*/ 
for(i=0;i<3;i++) 

 printf("input:/n"); 
 scanf("%d",&n); 
 push(n); 

 ptr=front; 
 display(ptr); 
 printf("/n Please enter any key to pop"); 
getch();
 pop(); 
 ptr=front; 
 display(ptr); 
getch();

}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/normallife/archive/2008/12/01/3419197.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值