
数据结构
Llwjz
这个作者很懒,什么都没留下…
展开
-
头插法和尾插法建立带头节点的单链表
有两种方法建立单链表,尾插法和头插法,他们的区别是:头插法是按照输入元素倒序建立,为尾插法为顺序插入,并且多一个尾节点,我们一般使用尾插法。 一.头插法 代码为:pCurr -> next = pHead -> next;pHead -> next = pCurr;二.尾插法 pTail -> next = pCurr;pTail = pCurr;完整代码如下://头插法和尾插法建立单原创 2016-04-12 11:49:47 · 8521 阅读 · 0 评论 -
递归方法解决电话号码对应英文问题
我们知道,九宫格键盘中,每个数字键对于几个英文字母,比如2可以代表A,B,C,那么给出一串数字序列,求出所有可能的英文序列。当数字序列不多时,这个问题使用循环即可解决,那么当序列长达11位呢?//电话号码对应英文单词#include <stdio.h>void RecursiveSearch(int* number, int* answer, int index, int n) { ch原创 2016-04-08 15:28:15 · 1599 阅读 · 0 评论 -
字符串左移包含问题
给定两个字符串s1和s2,要求判定s2是否能够被通过s1作循环移位得到的字符串包含。例如,s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。容易得,我们可以利用双重循环,对s1进行循环移位,判断字符串是否包含,遍历其所有的可能性。但是,我们观察移位后的结果,对s1移位后,其几种结果必包含于s1s1中,即AABCDAABCD,所以只需要判断s2是否原创 2016-04-08 13:28:57 · 630 阅读 · 0 评论 -
从无头单链表中删除节点
假设有一个没有头节点的单链表。一个指针pCurrent指向此单链表中间一个节点(非头,尾节点),将该节点从此单链表中删除。将一个节点删除,也即将指针释放,但是,我们要保证删除后不破坏单链表的结构。一般的思想是:找到要释放指针的前驱,将前驱与后驱直接连接。但是,无头的单链表,我们无法通过遍历来找到它的前驱。如上图,B节点,即我们要删除的节点,既然不能删除B后,将A和C连接起来,我们不原创 2016-04-09 21:17:21 · 667 阅读 · 0 评论 -
遍历一次实现单链表的顺序翻转
有一个带有头节点的单链表,如何遍历一次使它的顺序翻转?(关于建立单链表的两种方法,将会使用到,见博文:头插法和尾插法)我们使用pLast,pNext可以简便的实现: pCurr = pHead -> next; while(pCurr -> next != NULL) { pNext = pCurr -> next; pCurr -> next = pLast; p原创 2016-04-13 14:15:12 · 775 阅读 · 0 评论 -
java 冒泡排序算法
import java.util.Scanner;/** * Created by wjz on 2017/3/29. * 冒泡排序 */public class BubbleSort { public static void main(String[] args) { Scanner sc = new Scanner(System.in); i原创 2017-03-29 17:27:11 · 378 阅读 · 0 评论 -
Floyd多源最短路径算法
import java.util.Scanner;/** * Created by wjz on 2017/3/25. * 多源最短路径算法:Floyd算法 */public class Main4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in);原创 2017-03-25 10:24:20 · 414 阅读 · 0 评论