linux,kernel,list,linux内核,双向链表
分类:
系统相关 时间:
2014-10-16 13:45:42
阅读次数:
265
原题:双向链表中,需要三个基本数据,一个携带具体数据,一个携带指向上一环节的prev指针,一个携带指向下一环节的next指针。请改写双向链表,仅用一个指针np实现双向链表的功能。定义np为next XOR prev,请根据表头提供的信息,为双向链表编写插入函数、删除函数和查找函数,并在O(1)时间内...
分类:
编程语言 时间:
2014-10-15 18:19:21
阅读次数:
151
1#include2#include3#include4#include56#defineOVERFLOW07#defineTRUEtrue8#defineFALSEfalse9#defineOK110#defineERROR01112typedefintElemType;13typedefboo....
分类:
其他好文 时间:
2014-10-15 14:13:10
阅读次数:
271
首先简单说一下标准库中malloc实现原理:
标准库内部通过一个双向链表,管理在堆中动态分配的内存。
malloc函数分配内存时会附加若干(通常是12个)字节,存放控制信息。
该信息一旦被意外损坏,可能在后续操作中引发异常。
mmap/munmap 底层不维护任何东西,只是返回一个首地址,所分配内存位于堆中。
brk/sbrk 底层维护一个...
分类:
其他好文 时间:
2014-10-12 15:23:58
阅读次数:
224
#include
#include
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next1,*next2;
}*LinkList;
int main()
{
int n,m,i,t;
cin>>n>>m;
LinkList L,p,tai...
分类:
其他好文 时间:
2014-10-11 18:44:15
阅读次数:
213
#include
#include
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next1,*next2;
}*LinkList;
int main()
{
int n,m,i,t;
cin>>n>>m;
LinkList L,p,tai...
分类:
其他好文 时间:
2014-10-11 17:53:55
阅读次数:
130
看的概念挺朦胧的,没有明确好双链表到底需要哪些方法,其实针对这种结构应该可以写很多方法,并没有什么特定标准。
不过真是只看不练不行啊,一下手各种错误,各种溢出
#include
using namespace std;
template struct Node
{
T value;
Node* pre;
Node* next;
};
template class...
分类:
编程语言 时间:
2014-10-10 15:36:44
阅读次数:
247
LinkedList其实是基于双向链表实现的, 因此具有链表 插入慢、 索引快的特性
分类:
其他好文 时间:
2014-10-10 11:44:54
阅读次数:
125
使用双向链表+map,实现O(1)时间内的get和set
需要注意的是:
1. set时更新tail
size为0时更新头部
size为capacity时删除头部并且更新头部
2. get时更新节点到tail的位置,同时如果是节点是头部的话要更新头部
附上代码:
class LRUCache{
struct Node{
int key;
int...
分类:
其他好文 时间:
2014-10-08 01:04:54
阅读次数:
274
思路:采用中序遍历的方法,visit函数需要完成的功能为:
1、当前节点的左子节点指向上一次访问的节点;
2、将上一次访问节点的右子节点指向当前节点;
3、最后更新上一次访问节点为当前节点。
在第二步时需要判断上一次访问节点是不是为NULL,如果是,则第二步改为链表的头结点指向当前节点。
程序如下:
struct BSTnode
{
int data;
BSTnode * left...
分类:
其他好文 时间:
2014-10-07 13:20:23
阅读次数:
136