链表的理解

/*
   链表和动态数组关系:
      1.数组的长度等于链表的长度,链表如果添加了数据,长度就发生了变化,
         间接地数组的长度也就发生了变化,即可以实现动态数组(长度可变)

        public Object[] toArray(){
        if(count==0 || this.root==null){
            return null;
        }
        //count:链表的长度
        this.rdata=new Object[count];
        foot=0;//foot清零,
        //用this.root去获取数据
        this.root.toArrayNode();
        return rdata;

        public void toArrayNode(){
            Link_get.this.rdata[Link_get.this.foot++]=this.data;
            if(this.next!=null){
                this.next.toArrayNode();
            }
        }
    }

      2.链表添加一个数据,数组对应保存一个数据(采用索引foot++实现),链表
         输出可以通过遍历数组获取数据

*/
时间: 2024-10-05 06:46:03

链表的理解的相关文章

指针与链表结构理解

指针与链表结构理解#include<stdio.h>int main(void){ int a=3,*p; p=&a; printf("a=%d,*p=%d\n",a,*p); *p=10; printf("a=%d,*p=%d\n",a,*p); printf("Enter a:"); scanf("%d",&a); printf("a=%d,*p=%d\n",a,*p); r

有关链表的理解

链表为一种特殊的数据类型,大概的形式如下 链表里的的成员不需要名字,指针就是一种表示链表里的成员的方法,就像用变量的名字表示变量一样,所以我们用指针来表示变量不必需要名字了,通过第一个指针可以找到第一个成员,而第一个成员里保存有下一个成员的地址,通过这样不断的寻址,来表示链表里的数据. 可以把链表类比成数组,链表就是一种表示方式,不过比起数组来说,更能交互的存储和表示数据,链表的核心是通过指针来表示链表里的成员,c语言里一般用带有一个指针的结构来实现链表. 不用名字如何声明变量呢,c语言一般用m

指针与链表的理解

一.指针的概括 1.指针的类型       基本数据类型比如 int.char ,还有 一些复杂的比如 int (*p)[], 指向数组的指针,像这种的判断就是指针名字去掉 , 指针的类型类型就是 int(*)[],其实就是指向数组的指针  2.指针所指向的类型 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待.  你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型. 例如:int*ptr:指针所指向的

c数据结构 -- 链表的理解

链表是结构体变量与结构体变量链接在一起,怎么链接在一起?通过指针 #include <stdio.h> struct Node{ int data; struct Node* next; }; int main(void) { struct Node node1 = { 1,NULL }; struct Node node2 = { 3,NULL }; struct Node node3 = { 3,NULL }; node1.next = &node2; node2.next = &

深入理解JAVA集合系列:HashMap源码解读

初认HashMap 基于哈希表(即散列表)的Map接口的实现,此实现提供所有可选的映射操作,并允许使用null值和null键. HashMap继承于AbstractMap,实现了Map.Cloneable.java.io.Serializable接口.且是不同步的,意味着它不是线程安全的. HashMap的数据结构 在java编程语言中,最基本的结构就两种,一个是数组,另一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的.HashMap也不例外,它是一个“链表的数组”的数据结构

链表的倒序打印

问题描述:给定一个单链表的头结点,将链表逆序打印,并且要求不能改变链表的结构. 分析:考察对链表的理解,题目要求我们不能改变链表结构,但是链表是个单链表,只能向后指,不能向前指,这时我们可以采用其他数据结构来辅助, 根据单链表性质,要从头开始访问,但是却要最先打印最后的节点,这是属于典型的先访问后输出的特点,因此可以用栈来辅助,将先访问到的节点依次 入栈,入栈完后,开始出栈打印,可以符合题目要求.我们具体在编程时,可以采用栈结构,还可以使用递归,因为递归本质上是用栈来实现的.但是如果 链表太长的

&quot;数据结构翻转课堂&quot;答疑实录——链表

[说明] 本文是<数据结构>翻转课堂在线答疑的实录,由云班课的"答疑/讨论"功能中导出数据整理而成. [重要提示] 下面的内容,按时间从后往前的顺序提供,请直接到文章末尾,倒着看更顺畅. [知识点答疑] 赵鹤2015-09-21 16:38:25 头插法为什么首节点不是后来插入的节点 贺利坚2015-09-21 17:13:56 后加入的成头了. 赵鹤2015-09-21 17:26:04 可是首节点并没有数据域? 贺利坚2015-09-21 18:45:32 先区分下,首

C++ 动态链表

C++ 动态链表 用类写的 头文件代码: 1 #include<iostream> 2 #include<string> 3 //动态创建链表 4 using namespace std; 5 class LNode { 6 private: 7 string StudentNum; 8 string Name; 9 int age; 10 LNode *next; 11 public: 12 LNode() {}//构造函数 13 ~LNode() {}//析构函数 14 voi

读书笔记:线性表-单向链表

链表(linklist) 单项链表可以说是数据结构里面最简单的部分,也是十分重要的部分,数据结构后面的学习中 比如说:栈,队列,树, 图 都要使用这种数据结构来表示. 不多说,进入我对链表的理解部分. 简介: 链表是一种数据结构,链表中,数据对象实例的每一个元素都用一个单元或节点来描述.每一个节点中都包含着它的数据[数据部分]和相关节点的位置信息[链接部分],我们称连通两个节点的部分为链(link)或指针(pointer).链表的第一个节点称为头节点(head),最后一个节点为尾节点.头节点没有