单链表的应用
来源:互联网 发布:linux grep查找字符串 编辑:程序博客网 时间:2024/06/14 17:40
就地逆置——头插法
有一个线性表采用带头节点的单链表存储,采用就地算法将其就地逆置。
思路:
使用p指针扫描原单链表,现将头节点的next置为空,然后将其他节点采用头插法插入。
//就地逆置单链表,“就地”的意思是辅助空间为O(1)public void reverse(LinkList L){Node p=L.head.next;Node q;L.head.next=null;while(p!=null){q=p.next;p.next=head;head=p;p=q;}}
将一个线性表拆成两个线性表——尾插法
思路:原链表lc的第一个节点作为la的头节点,第二个节点作为lb的头节点。分别两个链表的尾指针ra,rb,将lc中的奇数序号的节点插入la,偶数序号的节点插入lb
public void spilt(LinkList lc,LinkList la,LinkList lb){int i=0;la.head=lc.head;Node ra=la.head;lb.head=lc.head.next;Node rb=lb.head;Node p=lc.head.next;Node q;while(p!=null){q=p.next;if(i%2!=0){ra.next=p;ra=p;}else{rb.next=p;rb=p;}p=q;i++;}ra.next=null;rb.next=null;la.showList();lb.showList();}
对单链表L进行调整,使得所有偶数序号项排在基数序号项之前
思路:通过扫描L的所有节点,将其拆分成两个单链表la和lb,一个用来存放L偶数序号的节点,另一个用来存放L奇数序号的节点,最后将la和lb连接起来。
//将所有偶数项排到奇数项之前public void sort(LinkList L){LinkList la=new LinkList(); //用来存放所有奇数序号的节点LinkList lb=new LinkList(); //用来存放所有偶数序号的节点la.head=L.head.next;Node ra=la.head;lb.head=L.head;Node rb=lb.head;Node p=L.head;Node q;int i=0;while(p!=null){q=p.next;if(i%2!=0){ra.next=p;ra=p;}else{rb.next=p;rb=p;}p=q;i++;}ra.next=null;rb.next=la.head;lb.showList();}
0 0
- 单链表的应用举例
- 单链表的应用
- 单链表的简单应用
- 单链表的应用
- 单链表的简单应用
- 单链表的应用
- 单链表的应用举例
- 单链表的小应用
- 数据结构单链表的简单应用
- 第四周--单链表的应用
- 第四周--单链表的应用
- 第四周--单链表的应用
- 数据结构的基本概念 单链表的应用
- pivot 的应用,有图有应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- uva116Unidirectional TSP
- Yocto i.MX6 (TQIMX6) (02) : USB Wifi (TP-Link WN821N等设备)AR9170的Linux内核支持与固件使用
- Angular service
- JAVA总结系列之异常机制
- php 基础
- 单链表的应用
- AdapterViewFlipper设置动画问题
- MySQL 使用 LOAD DATA 导入 csv 文件
- hdu5726 && hdu5869
- pat1191119. Pre- and Post-order Traversals
- 降低OpenWRT的Linux内核版本
- jquery该放在哪个文件夹啊。还有如何引入啊路径问题
- Yocto i.MX6 (TQIMX6) (03) : wifi网卡的相关工具wpa_supplicant与dhcp
- 【干货】5步搞定android混淆