双向链表实现数据添加删除.docx_第1页
双向链表实现数据添加删除.docx_第2页
双向链表实现数据添加删除.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

福州大学至诚学院ACM队利用双向链表实现头添加,头删除,尾添加,尾删除,以及输出功能。#include stdio.h#include stdlib.h typedef struct nodstruct nod *prior;int data;struct nod *next;node;node *head=new node;void addfirst(int s)/头添加函数node* currnode=new node; currnode-data=s;currnode-next=0;if(head-next=0)head-next=currnode;currnode-prior=head;elsecurrnode-next=head-next;currnode-prior=head;head-next-prior=currnode;head-next=currnode;node *move()/将指针指向链表末尾node * temp=head;while(temp-next) temp=temp-next;return temp;int addlast(int s)/尾添加node *temp,*currnode=new node;temp=move();currnode-data=s;temp-next=currnode;currnode-next=0;currnode-prior=temp; return 0;void delfirst()/头删除if(head-next-next=0)head-next-prior=0;head-next=0;elsehead-next=head-next-next;head-next-prior=head;void dellast()/尾删除node *temp;temp=move();temp-prior-next=0;temp-prior=0; void output()/输出链表内的数据node* temp=head;while(temp-next)printf(%d ,temp-next-data);temp=temp-next;printf(n);int main()int n,m,num,i;head-next=0;printf(请输入您即将添加的数字个数:n);scanf(%d,&n);printf(请输入您要添加的数字:n);while(n-)scanf(%d,&num);addlast(num);system(cls);printf(您输入的数字为:n);output();while(1)printf(请输入序号选择您想要的操作:n);printf(1.头添加n2.尾添加n3.头删除n4.尾删除n5.退出程序n);scanf(%d,&m);if(m=1)printf(请输入您即将添加的数字个数:n);scanf(%d,&n);printf(请输入您要添加的数字:n);while(n-)scanf(%d,&num);addfirst(num);if (m=2)printf(请输入您即将添加的数字个数:n);scanf(%d,&n);printf(请输入您要添加的数字:n);while(n-)scanf(%d,&num);addlast(num);if (m=3)delfirst();if (m=4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论