双向链表删除c语言,C语言实现双向链表插入,删除

#includestruct 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=(link)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");

pop();

ptr=front;

display(ptr);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值