首页 > 其他分享 >链表

链表

时间:2024-11-21 22:22:10浏览次数:1  
标签:myList 元素 list back 链表 添加 push

前言

简单的数据结构,存储单元存储线性表

STL使用

#include <bits/stdc++.h>
using namespace std;
int main()
{
    list<int> myList;
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_back(6);              // 在list的末尾添加元素6
    myList.push_front(0);             // 在list的开头添加元素0
    myList.insert(myList.begin(), 7); // 在list的开头插入元素7
    list<int>::iterator it = myList.begin();
    it++;
    myList.insert(it, 7);

    myList.pop_back();            // 删除list的最后一个元素
    myList.pop_front();           // 删除list的第一个元素
    myList.erase(myList.begin()); // 删除list的第一个元素(使用迭代器)
    myList.clear();               // 清空

    // 使用迭代器遍历
    for (std::list<int>::iterator It = myList.begin(); It != myList.end(); ++It)
    {
        std::cout << *It << " ";
    }

    auto it2 = std::find(myList.begin(), myList.end(), 7); // 查找值为7的元素
    if (it2 != myList.end())
    {
        std::cout << "Found element: " << *it2 << std::endl;
    }
    else
    {
        std::cout << "Element not found" << std::endl;
    }

    int aa1 = myList.size();  // 数量
    int aa2 = myList.front(); // 首项
    int aa3 = myList.back();  // 尾项

    myList.unique(); // 去重
    /*std::list<int> mylist1;
    mylist1.push_back(4);
    for (int i = 1; i <= 5; i++) mylist1.push_back(5);
    mylist1.push_back(4);
    for (int i = 1; i <= 5; i++) mylist1.push_back(5);
    mylist1.unique();
    for (int e : mylist1)
        std::cout << e << " ";*/
    // 输出4 5 4 5

    myList.sort(); // 排序
    return 0;
}

题目

洛谷P1996

洛谷P1160

标签:myList,元素,list,back,链表,添加,push
From: https://www.cnblogs.com/-include-lmt/p/18561666

相关文章

  • 数据结构 【带环链表2】
        说到带环链表,有一道题目是这样说的,如果一个链表存在环,那么就返回进入环的第一个节点,如果链表没有环,那么就返回空。这里给出两种解题思路:    第一种解法:小结论解法    分析:这道题目可以拆分成两个部分,第一:检查链表是否带环。第二:返回带环链表的第......
  • 【力扣热题100】[Java版] 刷题笔记-234. 回文链表
    题目:234.回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。解题思路回文定义:是指正读和反读都相同的字符序列。将链表数据获取出来,再通过前后指针向中间遍历,数据一致,则是回文;如果不一致则不是回文。......
  • C++ list (链表)容器
    C++ list 链表#include<iostream>usingnamespacestd;#include<list>voidprintList(constlist<int>&L){ for(list<int>::const_iteratorit=L.begin();it!=L.end();it++) { cout<<*it<<"";......
  • 代码随想录:链表相交
    代码随想录:链表相交像做数学题一样,要挖掘出表象下的实际条件。比如这道题,链表在一段时间后相交,其实含义是两者的尾部是相同的,所以只需要将尾部对齐即可。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListN......
  • C语言:链表
    链表是一种常见的线性数据结构,其中每个元素(称为节点)包含两部分:数据和指向下一个节点的指针。链表的主要优点是插入和删除操作的时间复杂度较低,但随机访问的效率不如数组。1.链表的基本概念节点(Node):链表的基本单元,包含数据和指向下一个节点的指针。头节点(Head):链表的第一个......
  • 力扣题目解析--合并k个升序链表
    题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->......
  • LCR 022. 环形链表 II(中等)(主站142)
    https://leetcode.cn/problems/c32eOV/https://leetcode.cn/problems/linked-list-cycle-ii/难度:☆☆☆题目:给定一个链表,返回链表开始入环的第一个节点。从链表的头节点开始沿着next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回null。为了表示给定......
  • LCR 021. 删除链表的倒数第 N 个结点(中等)(主站19)
    https://leetcode.cn/problems/SLwz0R/https://leetcode.cn/problems/remove-nth-node-from-end-of-list/难度:☆☆☆题目:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1输出......
  • 代码随想录:删除链表的倒数第N个节点
    代码随想录:删除链表的倒数第N个节点链表题目如果想找当前节点的前n个节点的话,用双指针法。另外务必用虚头节点。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*......
  • 代码随想录:两两交换链表中的节点
    代码随想录:两两交换链表中的节点链表题目务必用虚头节点,很多问题会变简单很多/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(......