有序表操作
来源:互联网 发布:wow强者的旗帜 淘宝 编辑:程序博客网 时间:2024/06/06 21:01
void listinsert(LNODE *h,ElemType e)//有序单链表的插入算法{ LNODE *res = h,*q; while(res->next&&res->next->node<e) res = res->next; q=malloc(sizeof(LNODE)); q->node = e; q->next = res->next; res->next = q;}void listinsert(SqList *l,ElemType e)//有序顺序表的插入算法{ int i=0,j; while (i<l->length&&l->data[i]<e) i++; for(j=l->length;j>i;j--) { l->data[i]=l->data[j-1]; l->data[i]=e; l->length++;}void unionlist(LNODE *h1,LNODE *h2,LNODE *h)//有序表的归并算法,采用单链表存放。就是合并连个单链表放在h中。{ LNODE *res1 = h1->next; LNODE *res2 = h2->next; LNODE *s; LNODE *q = h; while(res1&&res2) { if(res1->node>res2->node) { s = malloc(sizeof(LNODE)); s->node = res2->node; q->next = s; q = s; res2 = res2->next; } else { s = malloc(sizeof(LNODE)); s->node = res1->node; q->next = s; q = s; res1 = res1->next; } } while(res1) { s = malloc(sizeof(LNODE)); s->node = res1->node; q->next = s; q = s; res1 = res1->next; } while(res2) { s = malloc(sizeof(LNODE)); s->node = res2->node; q->next = s; q = s; res2 = res2->next; } q->next = NULL;}//把三个有序单链表的公共元素放到h1中,无用节点全都删掉。//核心思想:运用尾插法。void commend(LNODE *h1,LNODE *h2,LNODE *h3){ LNODE *res = h1; LNODE *q1 = h1->next,*q; LNODE *q2 = h2->next; LNODE *q3 = h3->next; while(q1) { while(q2&&q2->node<q1->node) q2 = q2->next; while(q3&&q3->node<q1->node) q3=q3->next; if(q2 && q3 && q2->node==q1->node && q3->node==q1->node) { res->next = q1; res = q1; q1 = q1->next; } else { q = q1; q1 = q1->next; free(q); } } res->next = NULL;}
0 0
- 有序表操作
- 链表-有序链表操作
- 有序单向链表的相关操作
- 有序链表的合并操作
- 链表常见操作:有序链表合并去重
- 合并两个已有序(升序)链表的操作!
- 10实现有序双向循环链表的插入操作
- 有序线性表的基本操作及实现
- vector的有序化操作
- 有序二叉树的操作
- redis有序集合orderset操作
- [Redis] 有序集合的操作
- 数据结构——单链表的创建、逆置、插入、有序表的建立、有序单链表合并等基础操作!!
- 有序的合并两个有序链表
- 有序线性表的有序合并
- 两个有序链表合并为有序
- 有序链表合并&有序数组合并
- l链表操作(合并两个有序链表为一个新链表)
- Core Animation编程指南
- CentOS服务器初始化设置---安全设置
- Git 版本控制使用
- 咏蚁
- Java Fibonacci数列
- 有序表操作
- uva 297 dfs
- 初步学习MVC的白痴问题的解决记录(一)
- php的unset函数何时释放内存
- 第二十一章 泛型(generic)
- hadoop2
- sql 中如何将A表的数据更新到B表中,数据表备份语句
- Triangle
- Servlet之避免页面被直接访问到