linklist template
- #include <iostream.h>
- typedef int ElemType;
- typedef struct LNode
- {
- ElemType data;
- struct LNode *next;
- }LNode;
- void CreateList(LNode *&L,int a[],int n)
- {
- LNode *p;
- L=new LNode;
- L->next=NULL;
- while (n)
- {
- p=new LNode;
- p->data=a[n-1];
- p->next=L->next;
- L->next=p;
- n--;
- }
- }
- void DispList(LNode *L)
- {
- LNode *p;
- p=L->next;
- while(p)
- {cout<<p->data<<'\t';p=p->next;}
- cout<<endl;
- }
- void UnionList(LNode* &L1,LNode *L2)
- {
- LNode *pa,*pb,*pc;
- pa=L1->next;
- pb=L2->next;
- L1->next=NULL;
- pc=L1;
- while(pa&&pb)
- {
- if(pa->data<pb->data)
- {pc->next=pa;pc=pa;pa=pa->next;}
- else
- {pc->next=pb;pc=pb;pb=pb->next;}
- }
- while(pa)
- {pc->next=pa;pc=pa;pa=pa->next;}
- while(pb)
- {pc->next=pb;pc=pb;pb=pb->next;}
- pc->next=NULL;
- }
- void ListReverse(LNode* &L)//similar to head fist insert method
- {
- LNode* p,*q;
- p=L->next;
- L->next=NULL;//separate head and first elem node
- while(p) //add node one by one
- {
- q=p->next;
- p->next=L->next;
- L->next=p;
- p=q;
- }
- }
- void main()
- {
- LNode *L1,*L2;
- ElemType a[10]={2,4,6,8};
- ElemType b[10]={1,3,5,7};
- CreateList(L1,a,4);
- DispList(L1);
- ListReverse(L1);
- DispList(L1);
- }
linklist template的更多相关文章
- C++模板学习
一.定义函数模板 template<class T> 函数定义 举个例子比较两个数大小: template<class T> int Compare(T a,T b) { ; ...
- 顺序表 C++ 类模板实现
顺序表的C++语言描述 基本运算的算法——置空表.求表的长度.取结点.定位运算.插入运算.删除运算.建立顺序表.输出顺序表 #include <iostream>using namespa ...
- 【Weiss】【第03章】练习3.15:自调整链表
[练习3.15] a.写出自调整表的数组实现.自调整表如同一个规则的表,但是所有的插入都在表头进行. 当一个元素被Find访问时,它就被移到表头而并不改变其余的项的相对顺序. b.写出自调整表的链表实 ...
- 【Weiss】【第03章】练习3.13:桶排序
[练习3.13] 利用社会安全号码对学生记录构成的数组排序.编写一个程序进行这件工作,使用具有1000个桶的基数排序并且分三趟进行. Answer: 首先,对社会安全号码不了解的就把它当成一个不超过9 ...
- 【Weiss】【第03章】练习3.12:单链表倒置
[练习3.12] a.编写一个非递归过程以O(N)时间反转单链表. b.使用常数附加空间编写一个过程以O(N)时间反转单链表. Answer: 这题的b貌似没啥意义,在a小题里直接用头插法,不断地将头 ...
- 【Weiss】【第03章】练习3.6:有序多项式相加
[练习3.6] 编写将两个多项式相加的函数.不要毁坏输入数据.用一个链表实现. 如果这两个多项式分别有M项和N项,那么你程序的时间复杂度是多少? 两个按幂次升序的多项式链表,分别维护一个指针. 幂较小 ...
- 【Weiss】【第03章】练习3.4、3.5:有序链表求交、并
[练习3.4] 给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∩L2的过程. [练习3.5] 给定两个已排序的表L1和L2,只使用基本的表操作编写计算L1∪L2的过程. 思路比较简单,测 ...
- 【Weiss】【第03章】练习3.3:通过交换指针交换单/双链表元素
[练习3.3] 通过之调整指针(而不是数据)来交换两个相邻的元素,使用 a.单链表 b.双链表 Answer: 先放测试代码,折叠标题可以看到分别是哪种链表的测试. 实测可满足题意,但单链表和双链表的 ...
- 【Weiss】【第03章】练习3.2
[练习3.2] 给你一个链表L和另一个链表P,它们包含以升序排列的整数.操作printlots(L,P)将打印L中那些由P所指定的位置上的元素. 例如,如果p=1,3,4,6,那么,L的第一.第三.第 ...
随机推荐
- Dubbo基础二之架构及处理流程概述
Dubbo基础一之实战初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中体验了Dubbo的使用,对于消费端对服务提供者的调用非常清晰明确.那么Dubbo是如何做到的呢?下面对Dub ...
- 数据库delete from和truncate删除的区别详解
一:区别 1.delete from 后面可以直接接条件,truncate不可以 2.delete from 记录是一条条删除的,所删除的每行记录都会进入日志,而truncate一次性删除整个页,因此 ...
- Python_time库_特定字符串格式的时间、struct_time、时间戳的处理
time库 时间戳:格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. # time.strptime(),功能:将特定字符串格 ...
- 分布式缓存NCache使用
NCache作为缓存优点币Redis有优势,但是收费的所以选用的不多吧.下面简单实操一下: 首先官网下载组件NCache Download Center (alachisoft.com),这里选择企业 ...
- [镜像转换] ova文件转换成raw文件, 导入到openstack
ova转raw 使用工具: qemu-img.libguestfs-tools.libguestfs-winsupport # 从vmware导出ova文件, tar 解压导出来的ova文件 $ ta ...
- 【转】VMWare中的Host-only、NAT、Bridge
背景:A是本机,A1,A2是虚拟机,B是外部联网的机器 host-only(主机模式): A可以和A1,A2互通,A1,A2 -> B不可以,B -> A1,A2不行 bridge(桥接模 ...
- Renix中如何实现流调速——网络测试仪实操
在Renix操作中有时我们需要进行流调速,那么如何实现呢?接下来为您详细介绍. 第一步:预约测试资源 首先打开Renix软件,连接机箱, 预约端口 第二步:流调速 例如:端口下有3条流,分别设置为10 ...
- 企业BI应用解决方案主要包括哪些方面?
BI的地位 在实际的BI应用过程中,很多企业对数据分析的概念仅为雏形,且业务人员往往难以了解自身数据分析的需求.这就造成很多BI需求调研在和业务人员沟通的环节,业务人员难以明确需求,这使得BI沦为一个 ...
- Leaflet:控件Control相关
Leaflet官方文档中只给出了4种控件:Zoom.Attribution.Layers.Scale:它们都是继承自Control类,具体可以参考Control. Control Zoom.Scale ...
- Dubbo服务如何优雅的校验参数
一.背景 服务端在向外提供接口服务时,不管是对前端提供HTTP接口,还是面向内部其他服务端提供的RPC接口,常常会面对这样一个问题,就是如何优雅的解决各种接口参数校验问题? 早期大家在做面向前端提供的 ...