c语言队列链表的源程序,c语言栈队列链表算法代码实现

《c语言栈队列链表算法代码实现》由会员分享,可在线阅读,更多相关《c语言栈队列链表算法代码实现(8页珍藏版)》请在人人文库网上搜索。

1、include#define null 0#define len sizeof(struct lnode)int n;struct lnode *creatlist();struct lnode *listinsert();struct lnode *listdel();struct lnodeint a;struct lnode *next;struct lnode *head;void main()int n; doprintf(=链式表练习=n);printf( 请选择操作:n);printf( 1、建立链式表n);printf( 2、插入新元素n);printf( 3、删除元素n);p。

2、rintf(=n);scanf(%d,&n);switch(n)case 1:creatlist();break;case 2:listinsert();break;case 3:listdel();break;default:printf(选择错误,请确认输入!n);break;while(1);struct lnode *creatlist()/建立链表struct lnode *p1,*p2,*p0;n=0;head=null;p1=(struct lnode *)malloc(len);printf(请输入初始元素:n);scanf(%d,&p1-a);p1-next=null;whi。

3、le(p1-a!=0)+n;if(n=1) head=p1;else p2-next=p1;p2=p1;p1=(struct lnode *)malloc(len);scanf(%d,&p1-a);p1-next=null;free(p1);printf(建立链表成功!n);printf(建立的链表为:n);p0=head;doprintf(%d ,p0-a);p0=p0-next;while(p0!=null);printf(n);free(p0);return(head);struct lnode *listinsert()/插入链表元素int i,j=1;struct lnode *p,。

4、*q,*p0;p=p0=head;q=(struct lnode *)malloc(len);printf(请选择插入的位置:n);scanf(%d,&i);printf(请输入要插入元素的值:n);scanf(%d,&q-a);while(jnext;j+;q-next=p-next;p-next=q;free(p);printf(插入成功!n);printf(插入后链表为:n);/*doprintf(%d ,p0-a);p0=p0-next;while(p0!=null);printf(n);free(p0);*/return(head);struct lnode *listdel()/删。

5、除链表元素int j;struct lnode *p,*q,*p0;p=q=p0=head;printf(请输入要删除的元素:n);scanf(%d,&j);while(p-a!=j)q=p;p=p-next;q-next=p-next;free(p);printf(删除成功!n);printf(删除后链表为:n);doprintf(%d ,p0-a);p0=p0-next; while(p0!=null);printf(n); free(q);free(p0);return(head);#include#define null 0;struct qnodeint data;struct qn。

6、ode *next;struct linkqueuestruct qnode *front;struct qnode *rear;q;struct linknode *qinit();struct linknode *qinsert();struct linknode *qdel();void main()int n;doprintf(=链队列练习=n);printf( 请选择操作:n);printf( 1、建立链队列n);printf( 2、插入新元素n);printf( 3、删除元素n);printf(=n);scanf(%d,&n);switch(n)case 1:qinit();bre。

7、ak;case 2:qinsert();break;case 3:qdel();break;default:printf(选择错误,请确认输入!n);break;while(1);struct linknode *qinit()q.front=q.rear=(int *)malloc(sizeof(int);q.front-next=null;printf(建立空队列成功!n);struct linknode *qinsert()int e,n,i;struct qnode *p; p=(int *)malloc(sizeof(int);printf(请输入要插入元素的个数:);scanf(%。

8、d,&n);for(i=0;idata=e;p-next=null;q.rear-next=p;printf(插入%d成功,还剩%d个元素为插入!n,e,n-1);printf(插入完成!n);struct linknode *qdel()int e;struct qnode *p;p=q.front-next;e=p-data;q.front-next=p-next;free(p);printf(删除元素%d成功!n,e);#includeint creat();int insert();int del();int a20;int m;int main()int n; doprintf(=顺。

9、序表练习=n);printf( 请选择操作:n);printf( 1、建立顺序表n);printf( 2、插入新元素n);printf( 3、删除元素n);printf(=n);scanf(%d,&n);switch(n)case 1:creat();break;case 2:insert();break;case 3:del();break;default:printf(选择错误,请确认输入!);break;while(1);int creat()int i;printf(请输入顺序表长度:);scanf(%d,&m);printf(请初始化顺序表:);for(i=0;ii-1;j-)aj=。

10、aj-1;ai-1=x;printf(您插入后的数组如下:n);for(i=0;i#define stack_init_size 100;#define stackincrement 10;#define len sizeof(int); struct sqstackint *base;int *top;int stacksize;struct sqstack s;struct sqstack *initstack();struct sqstack *push();struct sqstack *pop();void main()int n;doprintf(=顺序栈练习=n);printf(。

11、 请选择操作:n);printf( 1、建立顺序栈n);printf( 2、插入新元素n);printf( 3、删除元素n);printf(=n);scanf(%d,&n);switch(n)case 1:initstack();break;case 2:push();break;case 3:pop();break;default:printf(选择错误,请确认输入!n);break;while(1);struct sqstack *initstack()s.base=(int *)malloc(10*sizeof(int);s.top=s.base;s.stacksize=stack_init_size;printf(构造空栈s成功!n);/return(s);struct sqstack *push()int e;printf(请输入要插入的新元素值:);scanf(%d,&e);*s.top+=e;printf(插入元素成功!n);/return(s);struct sqstack *pop()int e;e=* -s.top;printf(删除的元素是:%dn,e);/return(s。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值