双向循环链表,先来说说双向链表,双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.而循环链表之前也有说过,单链表中就是让最后一个结点的指针指向第一个结点就能构成一个循环链表,这...
分类:
编程语言 时间:
2015-06-07 21:26:16
阅读次数:
243
今天,老师说了一道题,大意是,有一群小朋友10个人,但是老师只有一个苹果,只能给一个小朋友,于是老师就决定让小朋友们做成一圈,从第一个小朋友开始,每隔一个小朋友就没有机会得到苹果,最后剩下的一个人可以得到,现在老师想知道这个幸运儿会是谁.然后老师要求这个问题用循环链表解决,自己也顺带复习一下,直接上...
分类:
编程语言 时间:
2015-06-06 00:26:09
阅读次数:
147
//【数据结构】用C++实现单循环链表的各种操作(包括头删,尾删,插入,逆序,摧毁,清空等等)
//头文件
#ifndef _CDLIST_H
#define _CDLIST_H
#include
using namespace std;
template
class CDList;
template
class ListNode
{
friend class CDList;
p...
分类:
编程语言 时间:
2015-06-01 09:47:46
阅读次数:
123
1.进程描述符及任务结构
Linux内核把进程存放在叫做任务队列的双向循环链表中。链表中的每一项都是类型为task_struct,称为进程描述符的结构。进程描述符包含一个具体进程的所有信息。
task_struct相对较大,在32位的机器长,它大约有1.7K字节。进程描述符中的数据能完整的描述一个正在执行的程序:它打开的文件、进程的地址空间、挂起的信号、进程的状态,还有其他...
分类:
系统相关 时间:
2015-05-29 18:11:24
阅读次数:
241
头文件:
#pragma once
#include
#include
using namespace std;
template
class List;
// 结点类
template
class NodeList
{
friend class List;
public:
NodeList();
NodeList(Type d, NodeList *n = NULL, ...
分类:
编程语言 时间:
2015-05-28 21:32:23
阅读次数:
186
头文件:
#pragma once
#include
using namespace std;
template
class List;
// 结点类
template
class NodeList
{
friend class List;
public:
NodeList();
NodeList(Type d, NodeList *n = NULL);
priva...
分类:
编程语言 时间:
2015-05-27 15:58:28
阅读次数:
239
最近在看Linux内核的代码,第一个想了解的是Linux内部所使用的数据结构:链表。事实上Linux 内核使用的链表是双向循环链表.跟普通的链表一样,它的每个节点包含两个域:数据域和指针域,其中数据域很明确,就是用户自己的数据,没啥好说的,具体得看用户想通过链表组织什么数据。指针域是一个结构体如下:...
分类:
系统相关 时间:
2015-05-25 16:05:12
阅读次数:
123
LinkedListLinkedList基于双向循环链表实现。也可以被当做堆栈,队列或双端队列进行操作。非线程安全。下面直接贴ArrayList的Java实现(只贴了部分代码),来源JDK1.8.0_25/src.zip。 /** * ****双向链表对应的数据结构********* ...
分类:
编程语言 时间:
2015-05-24 21:40:43
阅读次数:
138
#include
using namespace std;template
struct Node
{
Node *next;
Node *prve;
Type data;
Node(Type d = Type()):data(d),next(NULL),prve(NULL){}
};t...
分类:
编程语言 时间:
2015-05-23 14:14:41
阅读次数:
125