补充:关于不定长的链表的实现
2015-08-01 10:05
375 查看
前一篇简单的实现了一下链栈的实现。由于最近正在学习数据结构,还是记录一下自己的学习过程吧。
链表在数据结构中,觉得还是比较“实在”,也比较常用。
上代码,还请指教指教。。。
链表在数据结构中,觉得还是比较“实在”,也比较常用。
上代码,还请指教指教。。。
bool init_list(dseq_list *p) { if (p==NULL) { return false; } p->elem=(ELEM_TYPE *)malloc(sizeof(ELEM_TYPE)*MAX_SIZE); if (p->elem == NULL) { return false; } p->length=0; p->total_size=MAX_SIZE; return true; } bool insert_list(dseq_list *p,int pos,ELEM_TYPE value) { if (p==NULL) { return false; } if (pos<0||pos > p->length) { return false; } if (p->length == p->total_size) { p->elem=(ELEM_TYPE *)realloc(p->elem,sizeof(ELEM_TYPE)*p->total_size*2); if (p->elem==NULL) { return false; } p->total_size=p->total_size*2; } for (int i=p->length-1;i>pos;i--) { p->elem[i+1]=p->elem[i]; } p->length++; p->elem[pos]=value; return true; } bool show_list(dseq_list *p) { if (p==NULL) { return false; } for (int i=0;i<p->length-1;i++) { printf("%d\n",p->elem[i]); } return true; } bool is_empty(dseq_list *p) { if (p==NULL) { return false; } if (p->length==0) { return true; } else { return false; } return true; } int get_elem(dseq_list *p,int pos) { if (p==NULL) { return false; } if (pos<0||pos > p->length) { return false; } return p->elem[pos]; } bool del_elem(dseq_list *p,int pos) { if (p==NULL) { return false; } if (pos<0||pos>p->length-1) { return false; } for (int i=pos;i<p->length-1;i++) { p->elem[i]=p->elem[i+1]; } return true; } bool destory_list(dseq_list *p) { if(p==NULL) { return false; } free(p->elem); p->elem=NULL; p->length=0; p->total_size=0; return true; }
相关文章推荐
- HDOJ Intersection 5120【环相交面积】
- 消息队列 redis vs nsq
- Servlet线程
- Git、Gradle初步
- VS2010错误“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决办法
- C# 自定义特性的使用
- 第十章 幸运抽奖
- sql语法:inner join on, left join on, right join on详细使用方法
- hdu2473 Junk-Mail Filter
- hihoCoder 1048 状态压缩·二
- 最强AngularJS资源合集
- EventBus 《四》 事件的优先级及其EventBus Demo
- 最强AngularJS资源合集
- Hdu 5326 2015多校对抗赛三
- [置顶] QuaZip源码编译及其编解码功能的测试
- java 基础知识2
- hdu 1689 Just a Hook
- 判断两棵二叉树是否相似
- JAVA 并发编程-线程同步通信技术(Lock和Condition)(十)
- PHP---运行时出现waring如何取消