最新文章列表

程序员必须知道的数据结构:线性表与链表

既然我们这一节要说的是线性表与链表的内容,那么肯定要对数据结构的概念有一个认识。首先,数据结构一般分为逻辑结构、物理结构,逻辑结构指 ...
wwt_cxy001 评论(0) 有239人浏览 2021-03-08 19:49

redis 简单动态字符串和链表实现原理

简单动态字符串: struct{    int len    int free    char buf[]; } 简单动态字符串比 C 中字符串的优点: 1.可以很快的获取字符串的长度 2.在进行字符串操作时,防止溢出 3.减少修改字符串时带来的频繁内存分配 链表: struct listNode{     listNode * prev;     listNode * next;    ...
一剪梅 评论(0) 有929人浏览 2019-02-28 16:22

读书笔记:《算法图解》第二章 选择排序

数组:所谓数组,是无序的元素序列。数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。 链表:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点) ...
tedeum 评论(0) 有780人浏览 2018-01-11 13:57

链表(JavaScript实现)

1.简介        其实在大学的时候就已经学过数据结构了,不过当时是C语言版的,如今有时间就又重新复习一遍,补一下基础,这次打算用js实现,知识点都是相同的,只不过是实现方式不同而已。       栈和队列相对比较简单,用js的Array对象的push,pop,shift,unshift就可以模拟,也是最常用的数据结构,比如要存储多个元素,用数组就十分方便。但是数组的大小是固定的,从数组的 ...
火焰莲 评论(0) 有883人浏览 2017-07-16 20:49

java数据结构总结(包含数组,链表,堆,栈)

      眨眼间,我们就上到了数据结构,从数组到队列,数据结构中的基本内容也快讲完,在数组的学习中,我们首先是学习ArrayList做了一个简单的长度可变的数组,利用两个数组中的交换数据做到了每次增量为1的可变数组,然而和ArrayList相比较,我们的可变数组的计算速度耗时过长,为了将数组的时间缩短,提高数组的效率,我们设置了增量,初始容量和数量,每次数组中放入数据超过数组本身的容量是就自动 ...
真眼2017 评论(0) 有327人浏览 2017-03-22 19:39

Java用链表实现栈和队列

    用链表实现了栈的基本操作:入栈、出栈、查看栈顶数据以及判断栈是否有数据 /** * 用链表实现栈 * @author Administrator * * @param <E> */ ...
程序新猿 评论(0) 有1559人浏览 2017-03-09 22:19

基于单向链表有界阻塞队列LinkedBlockingQueue源码分析

一:功能介绍       基于单项链表,FIFO的有界阻塞队列,内部采用可重入锁ReentrantLock实现,一个take锁,一个put锁,相应的等待条件也为二个。二:源码分析 ...
农村外出务工男JAVA 评论(0) 有625人浏览 2016-12-22 17:42

数组与链表的区别

数组与链表都是数据结构,并且都是存储特定数据类型。 数组存储的特点:存储的内存地址是连续的。 优点:数据是存放在一个连续的内存地址的上,通过索引进行查询数据时效率比较高。 缺点:而对于数组插入和删除操作,则效率会比较低,在第一个位置进行插入数据,其余数据就需要依次向后移动,而第一个数据进行删除,则需要所有数据全部向前移,这样的话,就会推出第二种结构,链表结构。   简单的链表:为了保证数据 ...
幼儿园扛把子 评论(0) 有445人浏览 2016-12-12 14:01

jdk链表笔记

LinkedList LinkedList是双链表,并且有头尾指针   数据结构 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable { transient int size = 0; ...
noble510520 评论(0) 有623人浏览 2016-10-26 19:28

Java单向链表反转

Java API中的链表是双向的,我们这里自己新建一个类代表我们的链表元素结点: class Node { int value; Node next; public Node(int i) { setValue(i); } public Node() { } public int getValue() { return val ...
somefuture 评论(0) 有3839人浏览 2016-08-15 16:32

Merge k Sorted Lists

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. Merge k个有序链表,之前做过一道题目是merge两个有序的链表,这里我们用分治的思想,用归并排序解决。先将k个链表递归的分为两部分,直到剩下两个链表,然后将两个链表合并起来。因为有k个list,假 ...
KickCode 评论(0) 有509人浏览 2016-03-07 04:03

Odd Even Linked List

Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes. You should try to do it in pl ...
KickCode 评论(0) 有798人浏览 2016-02-28 05:03

Reverse Linked List

Reverse a singly linked list. 反转一个单向链表,采用头插法,设定两个指针pre和tem,tem记录head的下一个元素,从head开始依次指向它前面的元素,同时pre不断后移。代码如下: /** * Definition for singly-linked list. * public class ListNode { * int val; ...
KickCode 评论(0) 有381人浏览 2016-02-19 03:09

Remove Linked List Elements

Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6 Return: 1 --> 2 --> 3 --> 4 --> 5 从 ...
KickCode 评论(0) 有472人浏览 2016-02-19 02:05

Intersection of Two Linked Lists

Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A:              a1 → a2                                ↘    ...
KickCode 评论(0) 有293人浏览 2016-02-16 02:31

Sort List

Sort a linked list in O(n log n) time using constant space complexity. 在O(nlogn)的时间复杂度下对一个链表进行排序,通过时间复杂度很容易想到用快排和分治。链表的快排实现比较复杂,这里我们用分治法来实现。代码如下: /** * Definition for singly-linked list. * publi ...
KickCode 评论(0) 有596人浏览 2016-02-15 04:40

Insertion Sort List

Sort a linked list using insertion sort. 题目的要求很简单,用插入排序来排序一个链表,不清楚插入排序的可以参考几种常见的排序算法。对于链表来说,每次都将当前待插入的节点与之前的有序序列进行比较,对于数组来讲,我们是将当前元素从后往前与有序数列比较的,这样可以保证排序是稳定的。因为链表只能从头节点开始,我们只能从头节点开始比较,因此链表的插入排序是不稳定的排序 ...
KickCode 评论(0) 有536人浏览 2016-02-14 07:05

Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes' values. For example, Given {1,2,3,4}, reorder it to {1,4,2, ...
KickCode 评论(0) 有648人浏览 2016-02-14 04:17

Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note: Do not modify the linked list. Follow up: Can you solve it without using extra space? 判断一个链表中是否 ...
KickCode 评论(0) 有785人浏览 2016-02-14 02:41

Linked List Cycle

Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? 判断一个链表中是否有环存在,用快慢指针来解决,设定两个指针fast和slow都指向head,我们让fast = fast.next.next,slow = slow.next, ...
KickCode 评论(0) 有375人浏览 2016-02-13 03:11

最近博客热门TAG

Java(141744) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54919) .net(54785) Web(54514) 工作(54118) Linux(50905) Oracle(49875) 应用服务器(43289) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37267) 数据结构(36424)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics