关闭

c/c++双链表正排序

227人阅读 评论(0) 收藏 举报

#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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:78251次
    • 积分:360
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:16篇
    • 译文:2篇
    • 评论:10条
    文章分类
    最新评论