通过优化指针实现的优先列表
来源:互联网 发布:网络电视有蓝牙吗 编辑:程序博客网 时间:2024/05/16 15:01
优先列表链表指针实现(参考《C和指针》)
通过使用指向 struct node *link 的指针,将头插入问题优化,并可利用解决二分搜索
#include<iostream>#include<cstring>#include<cstdlib>using namespace std;struct node{ int val; node *link;}Node;bool insert(register node **linkp, int new_val){ register node *current; register node *new_; while((current=*linkp)!=NULL&¤t->val<new_val) linkp=¤t->link; new_=(node *)malloc( sizeof(node)); if(new_==NULL) { cout<<"ask for mem failed"<<endl; return false; } new_->val=new_val; new_->link=current; *linkp=new_; return true;}bool del(register node **linkp, int del_val){ register node *current; while((current=*linkp)!=NULL&¤t->val!=del_val) linkp=¤t->link; if(current==NULL) { cout<<"Not found!"<<endl; return false; } *linkp=current->link; free(current); return true;}bool quar(register node **linkp,int quar_val){ register node *current; while((current=*linkp)!=NULL&¤t->val!=quar_val) linkp=¤t->link; if(current==NULL) { cout<<"Not found!"<<endl; return false; } else cout<<"exist"<<endl; return true;}bool print(node **linkp){ node *current; while((current=*linkp)!=NULL) { cout<<current->val<<endl; linkp=¤t->link; } return true;}int main(){ node *root,**linkp,*del_all,*tmp; root=(node *)malloc(sizeof(node)); root->link=NULL; linkp=&root->link; int ask,num; cout<<"ask=0: break; ask=1: insert,ask=2: del,ask=3: quar,ask=4: quar all"<<endl; while(cin>>ask) { if(!ask) break; switch(ask) { case 1 :cin>>num;insert(linkp,num);break; case 2 :cin>>num;del(linkp,num);break; case 3 :cin>>num;quar(linkp,num);break; case 4 :print(linkp);break; default :cout<<"ILLEGAL INPUT"<<endl;break; } } for(del_all=root;del_all!=NULL;) { tmp=del_all->link; free(del_all); del_all=tmp; } return 0;}
1 0
- 通过优化指针实现的优先列表
- 通过指针的指针来实现传出参数
- 通过实现ListCellRenderer接口,实现CheckBox的列表
- 通过POJ 3463 Sightseeing(dijkstra)彻底理解优先队列优化的dijkstra算法
- 如何通过优化代码来实现性能的优化
- 通过ul列表实现横向图文列表
- Android中通过ListView的实现简单新闻列表
- Android中通过ListView的实现简单新闻列表
- 通过继承ListActivity实现列表
- 通过recyclerView实现列表显示
- 通过RecyclerView实现列表倒计时
- 通过堆实现一个优先队列,
- 优先队列优化的dijsktra
- dijkstra的优先队列优化
- 容易理解的python用列表(栈)实现深度优先遍历文件
- 如何通过传指针得到一个list对象列表的地址
- 列表li排序去重的实现与优化
- c++通过指针实现队列
- store picture
- 六、Android RILD框架
- 《Redis官方文档》Redis集群教程
- Spring Cloud构建微服务架构(三)断路器
- STC89C52RC的串口下载
- 通过优化指针实现的优先列表
- lucene3.0入门(索引的文件写入+索引关键词查找)
- JavaScript 全栈工程师培训教程(React.js + Node.js)
- tomcat idea 远程调试debug
- AXMLPrinter2.jar反编译AndroidManifest文件
- IOS开发线程总结
- Android Retrofit 上传文件图片
- 双边滤波与引导滤波
- [转]--中国最新超算操作系统揭秘:基于Linux ---神威睿思OS(RaiseOS)