第七周项目2-链队算法库
来源:互联网 发布:淘宝联盟在哪里进入 编辑:程序博客网 时间:2024/06/03 19:04
main.cpp
#include<bits/stdc++.h>#include"liandui.h"using namespace std;int main(){ liandui *p; initliandui(p); rudui(p,1); rudui(p,2); rudui(p,3); int a=lianduiempty(p); cout<<a<<endl; cout<<"出队元素为:"<<chudui(p)<<endl; int b=lianduichang(p); cout<<"队长为:"<<b<<endl; rudui(p,4); rudui(p,5); rudui(p,6); int c=lianduichang(p); cout<<"队长为:"<<c<<endl; cout<<"出队元素依次为:"<<endl; while(!lianduiempty(p)) cout<<chudui(p)<<endl; xiaohui(p); return 0;}
liandui.cpp
#include"liandui.h"#include<bits/stdc++.h>using namespace std;void initliandui(liandui *&p){ p=(liandui *)malloc(sizeof(liandui)); p->fron=p->rear=NULL;}void xiaohui(liandui *&p){ datanode *q,*k; if(p->rear==NULL) { cout<<"就剩一个头了!"<<endl; free(p); return; } q=p->fron; k=p->fron->next;///如果只剩一个链头节点的话,这个应该就不成立! free(p); while(k->next!=NULL) { free(q); q=k; k=k->next; } free(k);}int lianduiempty(liandui *p){ return (p->rear==NULL);}int lianduichang(liandui *p){ datanode *q; q=p->fron; int k=0; while(q!=NULL) { k++; q=q->next; } return k;}void rudui(liandui *&p,int s){ datanode *r; r=(datanode *)malloc(sizeof(struct node)); r->data=s; r->next=NULL; if(p->rear==NULL)///链队为空并进队的情况 p->rear=p->fron=r; else { p->rear->next=r; p->rear=r; }}int chudui(liandui *&p)///我一开始写的时候没有将出队的数据节点释放掉,看了书之后又加的{ datanode *r; if(p->rear==NULL) cout<<"链队为空"<<endl; if(p->rear==p->fron) { int y=p->rear->data; p->rear=p->fron=NULL; return y; } int h=p->fron->data; r=p->fron; p->fron=p->fron->next; free(r); return h;}
liandui.h
#ifndef LIANDUI_H_INCLUDED#define LIANDUI_H_INCLUDEDtypedef struct node{ int data; struct node *next;}datanode;typedef struct{ datanode *fron; datanode *rear;}liandui;void initliandui(liandui *&p);void xiaohui(liandui *&p);int lianduiempty(liandui *p);int lianduichang(liandui *p);void rudui(liandui *&p,int s);int chudui(liandui *&p);#endif // LIANDUI_H_INCLUDED
知识点总结:
出队的时候最好把出队节点的空间给释放掉!还有就是在销毁链队的时候要注意需要判断链队是否为空(就是只剩一个链队节点的情况)!
心得体会:
百尺竿头更进一步!
阅读全文
0 0
- 第七周—项目2 - 建立链队算法库
- 第七周项目2-建立链队算法库
- 第七周--项目2建立链队算法库
- 第七周项目2 - 建立链队算法库
- 第七周项目2链队算法库
- 第七周 项目2 - 建立链队算法库
- 第七周项目(2):建立链队算法库
- 第七周 项目2 建立链队算法库
- 第七周 项目2 建立链队算法库
- 第七周-项目2 - 建立链队算法库
- 第七周 项目2-建立链队算法库
- 第七周 项目2-建立链队算法库
- 第七周 项目2-建立链队算法库
- 第七周项目2—建立链队算法库
- 第七周项目2--建立链队算法库
- 第七周项目2-建立链队算法库
- 第七周实践项目2--建立链队算法库
- 第七周项目2-建立链队算法库
- ie7下z-index失效问题解决方法(详细分析)
- LeedCode Palindrome Number
- ionic静态购物车实现
- 例子---回到顶部
- c++随笔——17.10.17
- 第七周项目2-链队算法库
- 单链表---两种方法简单实现单链表逆置
- Maximum Tree 2017ACM-ICPCUniversidadNacionaldeColombiaProgrammingContestB/Gym101466B
- bzoj 1042(容斥原理+背包dp)
- Python IDE——Pycharm 安装
- Android MediaRecorder录制视频
- TCP/IP 三次握手四次挥手
- c++随笔——17.10.18
- 微信公众平台java开发详解(工程代码+解析)