#include<stdio.h>#include<stdlib.h>#define N 7 typedef struct node{ int data; struct node *next;}ElemSN; ElemSN *Creatlink(int a[]);void Printlink(Ele ...
分类:
其他好文 时间:
2018-09-24 18:57:56
阅读次数:
162
#include<stdio.h>#include<stdlib.h>#define N 6 typedef struct node{ int data; struct node *next;}ElemSN; ElemSN * Creatlink(int a[]);int Count(ElemSN ...
分类:
其他好文 时间:
2018-09-24 18:57:15
阅读次数:
191
前言:前面几篇介绍了线性表的顺序和链式存储结构,其中链式存储结构为单向链表(即一个方向的有限长度、不循环的链表),对于单链表,由于每个节点只存储了向后的指针,到了尾部标识就停止了向后链的操作。也就是说只能向后走,如果走过了,就回不去了,还得重头开始遍历,所以就衍生出了循环链表 一、简介 定义:将单链 ...
分类:
编程语言 时间:
2018-09-23 11:55:24
阅读次数:
211
本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 思路 通常那样从头开始查找删除需要的时间为O(n),要在O(1)时间删除某结点,可以这样实现:设待删除结点i的下一个结 ...
分类:
编程语言 时间:
2018-09-18 17:23:36
阅读次数:
187
一、判断单链表是否存在环 这个问题有很多方法,最容易想到的就是记录每个节点记录的次数。这里也介绍的是另一种简单而常见的方法 快慢指针法: 定义两个指针slow, fast。slow指针一次走1个结点,fast指针一次走2个结点。如果链表中有环,那么慢指针一定会再某一个时刻追上快指针(slow == ...
分类:
其他好文 时间:
2018-09-09 00:41:39
阅读次数:
179
项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表; 1:单向链表: 单向链表的链表对象维护了一个 first 引用,该引用指向节点链表中的第一个节点对象,每 ...
分类:
其他好文 时间:
2018-08-29 16:53:40
阅读次数:
183
Set集合,先从HashSet学起。 1.HashSet底层实际上是一个HashMap,HashMap底层采用了哈希表数据结构。 2.哈希表又叫做散列表,哈希表底层是一个数组,这个数组中每一个元素是一个单向链表,每一个单向链表都有一个独一无二的hash值,代表数组的下标。在某个单向链表中的每一节点上 ...
分类:
编程语言 时间:
2018-08-26 14:48:52
阅读次数:
148
单向链表-用python实现 节点 包含两个域 元素域和链接域 元素域 是存放具体的数据 链接域 是存放指向下一个节点 单链表的操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历整个链表 add(item) 链表头部添加元素 append(item) 链表尾 ...
分类:
编程语言 时间:
2018-08-25 11:27:40
阅读次数:
198
传送门:Java 8系列之重新认识HashMap HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。 链表中存储的是一个个Node 节点, Node 包含四个属性:key, value, hash 值和用于单向链表的 next。 1.基本属性 2. put() 2.1 计算数组下标 ...
分类:
其他好文 时间:
2018-08-18 17:37:26
阅读次数:
148