线性结构(二)--- 双链表

 1 public class DoubleNode {
 2     //上一个节点
 3     DoubleNode pre=this;
 4     //下一个节点
 5     DoubleNode next=this;
 6     //节点数据
 7     int data;
 8
 9     public DoubleNode(int data){
10         this.data=data;
11     }
12
13     //增加节点
14     public void after(DoubleNode node){
15         //原来的喜爱一个节点
16         DoubleNode nextnext=next;
17         //把新节点作为当前节点的下一个节点
18         this.next=node;
19         //把当前节点做新节点的下一个节点
20         node.pre=this;
21         //让原来的下一个节点做新节点的下一个节点
22         node.next=nextnext;
23         //让原来的下一个节点的上一个节点为新节点
24         nextnext.pre=node;
25
26
27     }
28
29 }

原文地址:https://www.cnblogs.com/axu521/p/9968920.html

时间: 2024-11-01 12:17:53

线性结构(二)--- 双链表的相关文章

线性结构之双链表实现

#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct node { int data; struct node * prior; struct node * next; }NODE,*PNODE; PNODE createList(PNODE); void travelList(PNODE); void insertList(PNODE,int,int); int lengthLis

线性结构-数组和链表的实现

连续存储(数组) 1.什么叫数组? 元素的类型相同,大小相等. 2.优缺点? 查询速度快,增加删除慢 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //定义一个数据类型,名字 Arr,成员分别 struct Arr { int * pBase; //存储的是数组第一个元素的地址 int len; //数组的长度 int cnt; //当前数组有效元素的个数 int increment; //自动增长

二叉树的链式存储结构----二叉链表

头文件:head.h #include<string.h> #include<ctype.h> #include<malloc.h> /* malloc()等 */ #include<limits.h> /* INT_MAX等 */ #include<stdio.h> /* EOF(=^Z或F6),NULL */ #include<stdlib.h> /* atoi() */ #include<io.h> /* eof()

数据结构 线性结构(数组[列表] ,链表 单链表的增删改查**, 线性结构的应用 队列 栈[函数的调用**]),非线性结构 树

数据结构 参考:http://lupython.gitee.io/ 线性结构 就是能够用一根线串起来的数据结构 数组 (列表) 问:申请数组的前提条件是啥? a[12]?内存需要满足的条件? 答:内存必须有一块连续的内存空间 int a[7] : 声明一个数组,这个数组的数组名是 a, 数组的大小是 7, 数组元素的类型是整型. int a[7] = array(1,2,3,4,5,6,7) 问:如何申请内存? 答:C,C++语言,申请:mallco (28).释放:free(28) 问:int

数据结构和算法-数据结构-线性结构-顺序表 链表和哈希表

####################################################### """ # 线性表是最基本的数据结构之一,在实际程序中应用非常广泛,它还经常被用作更复杂的数据结构的实现基础. # 根据线性表的实际存储方式,分为两种实现模型: # 顺序表, # 链表, # 下面分别进行研究, """ ####################################################### &qu

线性表之双链表

#include<iostream> using namespace std; struct LinkNode { int value; LinkNode* next; LinkNode* pre; }; LinkNode* createDoubleLinkList() { LinkNode* head = (LinkNode*)malloc(sizeof(LinkNode)); head->next=NULL; head->pre=NULL; head->value=0;

线性结构栈之链表实现

#include<stdio.h> #include<malloc.h> #include<stdlib.h> //结点数据类型 typedef struct Node { int data; struct Node *next; }NODE,*PNODE; //栈数据类型 typedef struct { PNODE top; int cnt; }Stack; //想想看,为什么栈的数据结构是这样,我是这样思考的,如果你不这样写可以, //那你必须造出一个计数的结点和

线性结构(二)--数组

1.将数组转换成面向对象的数组 2.使用线性查找 3.使用二分法查找 一.数组: public class MyArray { //用于存储数据的数组 private int[] elements; //实例对象时,创建数组 public MyArray(){ elements=new int[0]; } //获取数组长度的方法 public int size(){ return elements.length; } //往数组的末尾添加一个元素 public void add(int elem

二叉树的链式存储结构--二叉链表

1 二叉树的链式存储结构 //二叉链表的结点结构定义 typedef struct BiTNode { int data; struct BiTNode *lchild; struct BiTNode *rchild; }BiTNode; typedef struct BiTNode *BiTree; 结构示意图如下: 2 二叉树的遍历方法 (1)前序遍历:先访问根结,然后前序遍历左子树,再前序遍历右子树. (2)

【算法和数据结构】_13_小算法_双链表

没什么新的内容,把自己写的练习代码贴出来,供大家批判. 1 /* 2 本程序用来测试非线性存储结构:双链表 3 */ 4 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 9 10 //**************************************************0 11 // 定义双链表数据结构 12 struct dbllink 13 { 14 char data; 15 struct dbllink* preN