[TOC] 归并排序思路 1)找到单链表中间节点,从而将原链表分为左右两部分; 2)对左右两部分链表分别进行归并排序,并合并左右两部分; 3)分别对两部分重复上述操作,直到所有元素都已排序成功。 因为单链表只能从链表头节点向后遍历,第一步操作用快慢指针找链表中点的时间复杂度就为O(n)。由于之后都是 ...
分类:
编程语言 时间:
2020-05-16 00:44:59
阅读次数:
82
[toc] 快速排序思路: 1)选定一个基准元素; 2)经过一趟排序,将所有元素分成两部分; 3)分别对两部分重复上述操作,直到所有元素都已排序成功。 因为单链表只能从链表头节点向后遍历,没有prev指针,因此必须选择头节点作为基准元素。这样第二步操作的时间复杂度就为O(n)。由于之后都是分别对两部 ...
分类:
编程语言 时间:
2020-05-16 00:31:26
阅读次数:
76
基础的增删查改命令整理 敲命令的时候发现不同目标下mysql命令还不一样 有必要整理一下 启动mysql服务:net start mysql 停止mysql服务:net stop mysql 登录mysql:mysql -h localhost -u root -p 其中-h 和localhost可 ...
分类:
数据库 时间:
2020-05-15 13:57:48
阅读次数:
69
1 /* 2 QQ:778138708 3 date:2020年5月15日 4 单链表结点删除 5 */ 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 struct ListNode { 10 int data; 11 struct ListNode ...
分类:
其他好文 时间:
2020-05-15 11:59:09
阅读次数:
58
单向循环链表的操作 length()返回链表的长度 思路:当头节点为空的时候,直接返回0 其它情况下,先确定循环条件,之前单链表的cur != None这一条件不适用于此,因为最后一个节点会指向头节点,即此时是cur.next==self.__head 而cur==self.__head同样不可取, ...
分类:
其他好文 时间:
2020-05-14 11:11:44
阅读次数:
80
单向循环链表的操作 travel() 遍历链表中所有元素 思路:跟之前的单链表一样,循环输出即可;要注意的是最后一个节点时,此时cur.next指向头节点,而没有进入循环,而cur指向该节点,跳出循环后,单独把最后一个节点的元素打印出来就可以了(当链表中只有一个元素,也可以处理) 注意:同时也要考虑 ...
分类:
其他好文 时间:
2020-05-14 10:30:51
阅读次数:
64
题意描述 给定一个单链表,确定它是否是回文。 测试用例 Input: 1 2 Output: false Input: 1 2 2 1 Output: true 解题思路 一、思路一 1. 使用快慢指针,快指针fast一次走两步,慢指针slow一次走一步。当fast走到尾部时,slow走到链表中间。 ...
分类:
其他好文 时间:
2020-05-13 23:26:04
阅读次数:
54
线性结构的主要内容有: 数组、栈、队列、单链表、循环链表、双链表、递归、排序算法 。 (1)数组的基本使用 : 1.1新建数组 : package array; import java.util.Arrays; public class TestArray1 { public static void ...
分类:
其他好文 时间:
2020-05-12 17:25:23
阅读次数:
55
给定一个单链表,求其是否可回读,即,正着读和倒着读一样。Input: 1->2->2->1Output: true 思路:一、遍历链表,将其节点的值存入动态数组中,最后对数组头尾的值遍历判别。 bool isPalindrome(ListNode* head) { vector<int> tmp; ...
分类:
其他好文 时间:
2020-05-12 16:57:00
阅读次数:
62
1.单链表实现 slist.h 1 #ifndef _SLIST_H 2 #define _SLIST_H 3 4 typedef struct _slist_node 5 { 6 struct _slist_node *p_next; /* 指向下一个结点的指针 */ 7 }slist_node_ ...
分类:
其他好文 时间:
2020-05-12 09:35:44
阅读次数:
49