数组和链表-《算法图解》学习

内存工作原理

需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。需要存
储多项数据时,有两种基本方式——数组和链表。但它们并非都适用于所有的情形,因此知道它
们的差别很重要。接下来介绍数组和链表以及它们的优缺点。
 
==============to be conntinued================

1、什么是链表Java LinkedList

标准答案:链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。

个人理解:链表是离散的表,n个节点组成,每个节点有2部分:1个是本节点存储的数据,1个是下一个节点的地址(指向下一个节点的指针)。操作系统上为了提高内存管理的效率,存储数据时有离散算法,那么链表应该也是为了提高数据的存储效率的一种数据类型。

 

与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。// 引入 LinkedList 类
1
2
3
4
5
6
7
8
9
10
11
12
13
<em id="__mceDel">import java.util.LinkedList;
 
public class RunoobTest {
    public static void main(String[] args) {
        LinkedList<String> sites = new LinkedList<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");<br>// 使用 addLast() 在尾部添加元素<br>        sites.addLast("Wiki");<br>// 使用 removeFirst() 移除头部元素<br>        sites.removeFirst();<br>// 使用 removeLast() 移除尾部元素<br>        sites.removeLast();<br>// 使用 getFirst() 获取头部元素<br>        System.out.println(sites.getFirst());<br>// 使用 getLast() 获取尾部元素<br>        System.out.println(sites.getLast());<br>//可以使用 for 配合 size() 方法来迭代列表中的元素:<br>for (int size = sites.size(), i = 0; i < size; i++) {<br>            System.out.println(sites.get(i));
        System.out.println(sites);
    }
}
</em>

  

2、链表C语言

2.1创建链表节点create_node

2.2插入节点

 2.3遍历链表

1
2
3
4
5
6
7
8
9
10
11
12
void show(struct node  *p)
{  
    while(1)
    {      
        if(p== NULL)  //假设p已经为NULL则返回
        {
            return ;
        }              
        printf("p=%d\n",p->data);       
        p  = p->next;  //链表的重要知识点!!! 遍历节点向下走        
    }  
}

3、链表算法题

posted @   迷迷糊糊的礼物  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示