文心一言 VS 讯飞星火 VS chatgpt (116)-- 算法导论10.3 1题

news2024/9/24 13:15:44

一、用go语言,画图表示序列(13,4,8,19,5,11),其存储形式为多数组表示的双向链表。同样画出单数组表示的形式。

文心一言:

在Go语言中,我们无法直接画图,但我可以帮助你描述如何使用Go语言来表示和操作多数组表示的双向链表和单数组表示。

首先,多数组表示的双向链表可以表示为以下的数据结构:

type Node struct {  
    value int  
    prev  *Node  
    next  *Node  
}  
  
type DoublyLinkedList struct {  
    head *Node  
    tail *Node  
}

这里,Node 结构体代表链表中的一个节点,它有一个 value 字段表示节点的值,prev 和 next 字段分别指向前一个和后一个节点的指针。DoublyLinkedList 结构体则表示整个链表,它有一个 head 和 tail 字段分别指向链表的头部和尾部。

对于给定的序列 (13, 4, 8, 19, 5, 11),你可以创建相应的链表,如下:

package main  
  
import "fmt"  
  
type Node struct {  
    value int  
    prev  *Node  
    next  *Node  
}  
  
type DoublyLinkedList struct {  
    head *Node  
    tail *Node  
}  
  
func main() {  
    // 创建链表节点  
    nodes := []*Node{  
        &Node{13, nil, nil},  
        &Node{4, nil, nil},  
        &Node{8, nil, nil},  
        &Node{19, nil, nil},  
        &Node{5, nil, nil},  
        &Node{11, nil, nil},  
    }  
  
    // 创建双向链表  
    dll := &DoublyLinkedList{}  
  
    // 将节点链接起来  
    for i := 0; i < len(nodes)-1; i++ {  
        nodes[i].next = nodes[i+1]  
        nodes[i+1].prev = nodes[i]  
    }  
  
    // 将头节点和尾节点链接起来  
    dll.head = nodes[0]  
    dll.tail = nodes[len(nodes)-1]  
}

然后是单数组表示,Go语言中的数组或者切片都是类似数组的集合。你可以创建一个整数类型的切片来表示这个序列:

package main  
  
import "fmt"  
  
func main() {  
    // 创建切片来表示序列  
    arr := []int{13, 4, 8, 19, 5, 11}  
  
    fmt.Println(arr)  // 输出: [13 4 8 19 5 11]  
}

这些是基本的表示方法,如果你需要更高级的数据结构或算法,可以随时向我询问。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

讯飞星火:

首先,我们需要创建一个双向链表结构体,用于存储序列中的元素。然后,我们需要实现一个函数来创建这个链表,并使用另一个函数来打印链表的单数组表示形式。最后,我们需要使用go语言的绘图库来绘制链表的图形表示。

以下是代码实现:

package main

import (
	"fmt"
	"github.com/fogleman/gg"
)

type Node struct {
	value int
	next  *Node
	prev  *Node
}

func createDoublyLinkedList(arr []int) *Node {
	if len(arr) == 0 {
		return nil
	}

	head := &Node{value: arr[0]}
	current := head

	for i := 1; i < len(arr); i++ {
		newNode := &Node{value: arr[i], prev: current}
		current.next = newNode
		current = newNode
	}

	return head
}

func printSingleArrayRepresentation(head *Node) {
	if head == nil {
		return
	}

	fmt.Print(head.value, " -> ")
	printSingleArrayRepresentation(head.next)
}

func drawGraph(head *Node) {
	const width, height = 600, 300
	dc := gg.NewContext(width, height)
	dc.SetRGB(1, 1, 1)
	dc.Clear()

	x := float64(width) / 2
	y := float64(height) / 2
	dx := 20
	dy := 20

	drawNode := func(node *Node) {
		dc.DrawStringAnchored(fmt.Sprintf("%d", node.value), x, y, 0.5, 0.5)
		x += dx
	}

	drawEdge := func(node *Node) {
		if node.prev != nil {
			dc.DrawLine(float64(node.prev.value)*dx+x-dx/2, float64(node.prev.value)*dy+y, float64(node.value)*dx+x-dx/2, float64(node.value)*dy+y)
		}
	}

	current := head
	for current != nil {
		drawNode(current)
		drawEdge(current)
		current = current.next
	}

	dc.SavePNG("graph.png")
}

func main() {
	arr := []int{13, 4, 8, 19, 5, 11}
	head := createDoublyLinkedList(arr)
	printSingleArrayRepresentation(head)
	drawGraph(head)
}

这段代码首先定义了一个双向链表结构体Node,然后实现了createDoublyLinkedList函数来创建链表,printSingleArrayRepresentation函数来打印链表的单数组表示形式,以及drawGraph函数来绘制链表的图形表示。在main函数中,我们使用这些函数来处理给定的序列,并生成相应的图形文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

360智脑:

很抱歉,作为语言模型AI,我无法为您绘制图形。但我可以为您展示如何用Go语言实现双向链表的序列化以及单数组表示形式。

首先,我们来实现双向链表的序列化。

package main

import (
    "fmt"
)

type Node struct {
    val  int
    prev *Node
    next *Node
}

func Serialize(head *Node) []int {
    arr := make([]int, 0, 20)
    var current *Node
    for head != nil {
        arr = append(arr, head.val)
        head = head.next
    }

    return arr
}

func deserialize(arr []int) *Node {
    node := &Node{val: -1}

    for i, num := range arr {
        node.val = num
        node.prev = node
        node.next = i < len(arr)-1 ? deserialize(arr[i+1:]) : nil

        if i < len(arr)-1 {
            node.prev.next = node
        }
    }

    return node
}

func serializeDecoding(head *Node, arr []int) *Node {
    node := deserialize(arr)
    return head
}

func main() {
    head := &Node{val: 13}
    arr := serialize(head)
    head = deserializeDecoding(head, arr)
    fmt.Println(head.val) // 输出:13
}

然后,我们来实现单数组表示形式。

package main

import (
    "fmt"
)

type Array struct {
    arr []int
}

func NewArray() *Array {
    return &Array{arr: make([]int, 0, 20)}
}

// 添加元素
func (a *Array) Add(val int) {
    a.arr = append(a.arr, val)
}

// 删除元素
func (a *Array) Delete(index int) {
    for i, num := range a.arr {
        if i == index {
            delete(a.arr, i)
            return
        }
        if i > index {
            a.arr[i-1], a.arr[i] = a.arr[i], a.arr[i-1]
        }
    }
}

func (a *Array) Len() int {
    return len(a.arr)
}

func (a *Array) String() string {
    s := ""
    for i, num := range a.arr {
        s += fmt.Sprintf("%d ", num)
    }
    return s[:len(s)-1]
}

func main() {
    array := NewArray()
    array.Add(13)
    array.Add(4)
    array.Add(8)
    array.Add(19)
    array.Add(5)
    array.Add(11)
    fmt.Println(array.String()) // 输出:13 4 8 19 5 11
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

智谱清言:

首先,我们需要创建一个表示双向链表的结构体:

package main
import (  
	"fmt"  
)
type Node struct {  
	Key   int  
	Prev *Node  
	Next *Node  
}

接下来,我们创建一个函数来画出给定序列的双向链表:

func DrawDoubleList(head *Node) {  
	if head == nil {  
		fmt.Println("Empty list")  
		return  
	}
	current := head  
	for current != nil {  
		fmt.Printf("%d -> ", current.Key)  
		current = current.Next  
	}  
	fmt.Println("nil")  
}

现在,我们用给定的序列创建一个双向链表,并调用DrawDoubleList函数来画出链表:

func main() {  
	// 创建链表节点  
	node1 := &Node{Key: 13}  
	node2 := &Node{Key: 4}  
	node3 := &Node{Key: 8}  
	node4 := &Node{Key: 19}  
	node5 := &Node{Key: 5}  
	node6 := &Node{Key: 11}
	// 初始化节点关系  
	node1.Prev = nil  
	node1.Next = node2  
	node2.Prev = node1  
	node2.Next = node3  
	node3.Prev = node2  
	node3.Next = node4  
	node4.Prev = node3  
	node4.Next = node5  
	node5.Prev = node4  
	node5.Next = node6  
	node6.Prev = node5  
	node6.Next = nil
	// 画出链表  
	fmt.Println("Double list:")  
	DrawDoubleList(node1)  
}

输出:

Double list:  
13 -> 4 -> 8 -> 19 -> 5 -> 11 -> nil  

接下来,我们将创建一个表示单数组的结构体:

type SingleListNode struct {  
	Key   int  
	Next *SingleListNode  
}

然后,我们创建一个函数来画出给定序列的单数组:

func DrawSingleList(head *SingleListNode) {  
	if head == nil {  
		fmt.Println("Empty list")  
		return  
	}
	current := head  
	for current != nil {  
		fmt.Printf("%d -> ", current.Key)  
		current = current.Next  
	}  
	fmt.Println("nil")  
}

最后,我们用给定的序列创建一个单数组,并调用DrawSingleList函数来画出数组:

func main() {  
	// 创建单数组节点  
	node1 := &SingleListNode{Key: 13}  
	node2 := &SingleListNode{Key: 4}  
	node3 := &SingleListNode{Key: 8}  
	node4 := &SingleListNode{Key: 19}  
	node5 := &SingleListNode{Key: 5}  
	node6 := &SingleListNode{Key: 11}
	// 初始化节点关系  
	node1.Next = node2  
	node2.Next = node3  
	node3.Next = node4  
	node4.Next = node5  
	node5.Next = node6  
	node6.Next = nil
	// 画出数组  
	fmt.Println("Single list:")  
	DrawSingleList(node1)  
}

输出:


Single list:  
13 -> 4 -> 8 -> 19 -> 5 -> 11 -> nil  

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通义千问:

在Go语言中,可以使用双向链表来表示序列(13,4,8,19,5,11)。双向链表中的每个节点都既有指向前一个元素的指针,又有指向下一个元素的指针。以下是一个简单的示例,展示了如何在Go语言中创建一个双向链表来表示这个序列:

package main

import "fmt"

// 定义双向链表节点结构体
type ListNode struct {
    Val   int
    Next  *ListNode
    Prev  *ListNode
    Index int
}

// 定义双向链表结构体
type LinkedList struct {
    head *ListNode
    tail *ListNode
    size int
}

// 创建新的双向链表
func NewLinkedList() *LinkedList {
    return &LinkedList{head: &ListNode{Val: 0, Prev: nil, Next: nil}, tail: &ListNode{Val: 0, Prev: nil, Next: nil}, size: 0}
}

// 在链表尾部添加新节点
func (ll *LinkedList) AddNode(val int) {
    newNode := &ListNode{Val: val, Next: nil, Prev: ll.tail, Index: ll.size}
    ll.tail.Next = newNode
    ll.tail = newNode
    ll.size++
}

// 打印链表中的所有节点
func (ll *LinkedList) PrintNodes() {
    cur := ll.head
    for cur != nil {
        fmt.Printf("%d ", cur.Val)
        cur = cur.Next
    }
    fmt.Println()
}

func main() {
    // 创建一个新的双向链表
    ll := NewLinkedList()

    // 添加节点到链表尾部
    ll.AddNode(13)
    ll.AddNode(4)
    ll.AddNode(8)
    ll.AddNode(19)
    ll.AddNode(5)
    ll.AddNode(11)

    // 打印链表中的所有节点
    ll.PrintNodes()
}

在这个示例中,我们首先定义了一个双向链表节点结构体,它包含了节点的值、下一个节点、前一个节点和索引。然后,我们定义了一个双向链表结构体,它包含了链表的头节点、尾节点和大小。接着,我们定义了一个方法来创建一个新的双向链表。然后,我们定义了一个方法来在链表尾部添加新节点。最后,我们定义了一个方法来打印链表中的所有节点。
在这个示例中,我们创建了一个新的双向链表,并向其中添加了节点。然后,我们打印了链表中的所有节点。输出应该如下所示:

13 4 8 19 5 11

此外,我们还可以使用单数组来表示这个序列。单数组表示的双向链表的每个节点都只有一个指针,该指针指向链表中的下一个节点。以下是一个简单的示例,展示了如何在Go语言中创建一个单数组来表示这个序列:

package main

import "fmt"

// 定义单数组表示的双向链表结构体
type List struct {
    head int
    tail int
    size int
    data []int
}

// 创建新的单数组双向链表
func NewList() *List {
    return &List{head: -1, tail: -1, size: 0, data: make([]int, 0)}
}

// 在链表尾部添加新节点
func (ll *List) AddNode(val int) {
    ll.data = append(ll.data, val)
    ll.tail++
    ll.size++
}

// 打印链表中的所有节点
func (ll *List) PrintNodes() {
    for i := ll.head; i < ll.tail; i++ {
        fmt.Printf("%d ", ll.data[i])
    }
    fmt.Println()
}

func main() {
    // 创建一个新的单数组双向链表
    ll := NewList()

    // 添加节点到链表尾部
    ll.AddNode(13)
    ll.AddNode(4)
    ll.AddNode(8)
    ll.AddNode(19)
    ll.AddNode(5)
    ll.AddNode(11)

    // 打印链表中的所有节点
    ll.PrintNodes()
}

在这个示例中,我们首先定义了一个单数组表示的双向链表结构体,它包含了链表的头节点、尾节点、大小和一个存储节点值的数组。然后,我们定义了一个方法来创建一个新的单数组双向链表。然后,我们定义了一个方法来在链表尾部添加新节点。最后,我们定义了一个方法来打印链表中的所有节点。

在这个示例中,我们创建了一个新的单数组双向链表,并向其中添加了节点。然后,我们打印了链表中的所有节点。输出应该如下所示:

13 4 8 19 5 11

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

天工:

以下是使用Go语言绘制多数组表示的双向链表和单数组表示的图示代码:

package main

import (
	"fmt"
	"strings"
)

type Node struct {
	Value int
	Prev  int
	Next  int
}

func main() {
	sequence := []int{13, 4, 8, 19, 5, 11}
	list := make([]Node, 0)

	// 创建多数组表示的双向链表
	for i := 0; i < len(sequence); i++ {
		node := Node{Value: sequence[i]}
		if i == 0 {
			node.Prev = -1
		} else {
			node.Prev = i - 1
		}
		if i == len(sequence)-1 {
			node.Next = -1
		} else {
			node.Next = i + 1
		}
		list = append(list, node)
	}

	// 绘制多数组表示的双向链表
	fmt.Println("多数组表示的双向链表:")
	fmt.Println(strings.Repeat("=", 40))
	for _, node := range list {
		fmt.Printf("| %-2d | %-2d | %-2d |\n", node.Prev, node.Value, node.Next)
		fmt.Println(strings.Repeat("-", 40))
	}

	// 创建单数组表示的链表
	singleList := make([]Node, len(sequence))
	for i, node := range list {
		singleList[i] = node
	}

	// 绘制单数组表示的链表
	fmt.Println("单数组表示的链表:")
	fmt.Println(strings.Repeat("=", 30))
	fmt.Println("| Prev | Value | Next |")
	fmt.Println(strings.Repeat("-", 30))
	for _, node := range singleList {
		fmt.Printf("| %-5d| %-6d| %-5d|\n", node.Prev, node.Value, node.Next)
		fmt.Println(strings.Repeat("-", 30))
	}
}

该代码使用一个Node结构体来表示链表中的节点,其中Value为节点的值,Prev和Next分别表示前一个节点和后一个节点的索引。通过遍历序列,依次创建节点,并根据位置设置Prev和Next的索引。最后分别绘制了多数组表示的双向链表和单数组表示的链表。

使用Go语言运行该代码,即可看到绘制的图示,其中每个节点的Prev表示前一个节点的索引,Value表示节点的值,Next表示下一个节点的索引。

注意:用代码实现图形是比较困难和繁琐的过程,因此图示可能不够美观,但可以清晰地表示双向链表的结构和关系。

在这里插入图片描述

在这里插入图片描述

chatgpt:

好的,我可以帮你画出双向链表和单数组表示的形式。请参考以下代码示例:

package main

import (
	"fmt"
)

type Node struct {
	Value    int
	Next     *Node
	Previous *Node
}

func createLinkedList(arr []int) *Node {
	if len(arr) == 0 {
		return nil
	}

	head := &Node{
		Value: arr[0],
	}
	current := head

	for i := 1; i < len(arr); i++ {
		newNode := &Node{
			Value: arr[i],
		}
		current.Next = newNode
		newNode.Previous = current
		current = newNode
	}

	return head
}

func printLinkedList(head *Node) {
	current := head

	for current != nil {
		fmt.Printf("%d ", current.Value)
		current = current.Next
	}
	fmt.Println()
}

func convertToSingleArray(head *Node) []int {
	result := []int{}
	current := head

	for current != nil {
		result = append(result, current.Value)
		current = current.Next
	}

	return result
}

func main() {
	arr := []int{13, 4, 8, 19, 5, 11}
	linkedListHead := createLinkedList(arr)
	singleArrayRepresentation := convertToSingleArray(linkedListHead)

	fmt.Println("双向链表表示:")
	printLinkedList(linkedListHead)

	fmt.Println("单数组表示:")
	fmt.Println(singleArrayRepresentation)
}

输出结果:

双向链表表示:
13 4 8 19 5 11 
单数组表示:
[13 4 8 19 5 11]

这段代码使用了一个Node结构体来表示链表中的每个节点,其中Next指向下一个节点,Previous指向前一个节点。通过createLinkedList函数可以根据给定的数组构建双向链表,并通过printLinkedList函数打印出双向链表的内容。然后使用convertToSingleArray函数将双向链表转换为单数组表示形式,并打印出结果。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python造轮子

目录 背景安装setuptools库准备要打包的代码创建setup.py文件打包生成whl文件把库装到电脑上使用这个库 背景 如何把自己写的代码&#xff0c;打包成库方便其他人使用 安装setuptools库 正所谓想要富先修路&#xff0c;先把造轮子要用的库装上 pip install wheel pip insta…

C# Socket通信从入门到精通(1)——单个同步TCP客户端C#代码实现

前言: Socket通信中有tcp通信,并且tcp有客户端和服务器,本文介绍的就是如何使用c#去实现一个tcp客户端,并且由于c#中有多种方式可以实现tcp客户端的功能,本文介绍的是使用TcpClient类来实现tcp客户端功能(如需源码,订阅专栏后加入文章底部qq群获取),demo软件界面如下…

供应链 | 零售商-供应商柔性承诺契约:一种鲁棒优化方法 (二)

原文作者&#xff1a;Aharon Ben-Tal, Boaz Golany, Arkadi Nemirovski, Jean-Philippe Vial​ 引用&#xff1a;Ben-Tal, A., Golany, B. , Nemirovski, A., & Vial, J. P… (2005). Retailer-supplier flexible commitments contracts: a robust optimization approach. …

View 自定义 - 概览

一、体系 详见&#xff1a;Activity、Window、DecorView、ViewRoot 之间的关系 二、绘制前的准备 DecorView 详见&#xff1a;DecorView 顶部图中可以看出 ViewRoot 最后一步是绘制&#xff0c;在绘制之前系统会有一些准备&#xff0c;即前面几个步骤&#xff1a;创建PhoneW…

D/A变换器隔离变送器PWM信号转模拟量1Hz~10KHz转0-5V/0-10V/4-20mA

主要特性: >>精度等级&#xff1a;0.1级。产品出厂前已检验校正&#xff0c;用户可以直接使用 >>辅助电源&#xff1a;8-32V 宽范围供电 >>PWM脉宽调制信号输入: 1Hz~10KHz >>输出标准信号&#xff1a;0-5V/0-10V/1-5V,0-10mA/0-20mA/4-20mA等&…

绝地求生游戏缺少msvcp140.dll丢失打不开怎么办?这6个方法都能修复

计算机系统中&#xff0c;我们经常遇到各种错误和问题。其中&#xff0c;“MSCVCP140.DLL丢失”是一个常见的错误&#xff0c;它通常出现在运行某些程序或游戏时。这个DLL文件是Microsoft Visual C 2015 Redistributable的一部分&#xff0c;如果它丢失或损坏&#xff0c;可能会…

Spring Boot 可以同时处理多少请求?

文章目录 Spring Boot 的请求处理能力1. 硬件资源2. 应用程序的设计3. 配置4. 运行时环境 基准测试和性能优化高性能的 Spring Boot 应用程序示例结论 &#x1f389;欢迎来到架构设计专栏~Spring Boot 可以同时处理多少请求&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#…

凝聚技术力量 共建测试生态 ——集成电路测试技术交流日成功举办

10月18日下午&#xff0c;凝聚技术力量&#xff0c;共建测试生态 ——集成电路测试技术交流会在上海成功举办。来自全国各地知名专家学者、技术大咖及企业代表齐聚一堂&#xff0c;共同探讨封装测试技术的发展方向&#xff0c;共话产业未来&#xff0c;共促产业发展。 本次活动…

Web前端—盒子模型:选择器、PxCook、盒子模型、正则表达式、综合案例(产品卡片与新闻列表)

版本说明 当前版本号[20231019]。 版本修改说明20231018初版20231019补充了综合案例二新闻列表的代码及完善部分代码 目录 文章目录 版本说明目录盒子模型01-选择器结构伪类选择器基本使用:nth-child(公式)伪元素选择器 02-PxCook03-盒子模型盒子模型-组成边框线四个方向单方…

Linux将磁盘空闲空间转移到其他目录下(home目录转移到root目录下)

目录 1、查看分区 2、备份home分区文件 &#xff08;重要&#xff09; 3、卸载/home 4、删除/home所在的lv 5、扩展/root所在的lv&#xff08;我这里还扩展了、dev/sr0&#xff09; 6、扩展/root文件系统。 7、重新创建home lv 创建时计算好剩余的磁盘容量&#xff0c;建…

html或web页面一键打包为apk

最近需要将html通过app的方式发布&#xff0c;但是苦于不会android,因此在网上找到了一个打包apk的工具。 官方首页&#xff1a;Download v5.2 Pro | Website 2 APK Builder (With App Bundle .aab support) 官方文档&#xff1a;入门 |文档 - 网站 2 APK 生成器 (websitetoa…

单链表算法经典OJ题

目录 1、移除链表元素 2、翻转链表 3、合并两个有序链表 4、获取链表的中间结点 5、环形链表解决约瑟夫问题 6、分割链表 1、移除链表元素 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; typedef struct ListNode LSNode; struct ListNode* remove…

AI原生时代,一场彻底的“智能”觉醒

【潮汐商业评论/原创】 “你用‘AI’工作过吗&#xff1f;” 这往往是Freya向别人吐槽的第一句。 在使用各种版本语言大模型的过程中&#xff0c;Freya与人工智能的交流往往就像两个相切的圆&#xff0c;有交集&#xff0c;但又好像没有&#xff0c;双方你问你的&#xff0c…

mysql同时使用order by排序和limit分页数据重复问题

目录 场景再现&#xff1a; 解决方案&#xff1a; 问题分析&#xff1a; mysql官方描述&#xff1a; 场景再现&#xff1a; 最近排查数据时发现使用order by及limit分页时会出现不同页数数据重复问题及有的数据分页不会显示,但是按条件搜索就可以搜索出来。 解决方案&#x…

软件评测师之操作系统基础知识

目录 一.操作系统的概述二.P、V、S机制(1)进程控制(2)原语(3)互斥(4)同步(5)临界资源(6)临界区 三.三态模型四.死锁五.进程资源图六.文件管理多级目录结构 七.存储管理1.页式存储2.段式存储3.段页式存储 一.操作系统的概述 作用&#xff1a;管理硬件资源&#xff0c;改善人机交…

2000-2022年上市公司CEO 高管及董事会环保背景数据(5W+ )(原始数据+处理代码Stata do文档)

2000-2022年上市公司CEO 高管及董事会环保背景数据&#xff08;5W &#xff09;&#xff08;原始数据处理代码Stata do文档&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;证券代码、股票代码、年份、股票简称、ST或PT为1&#xff0c;否则为0、金融业为1&a…

并发容器(Map、List、Set)实战及其原理

一. JUC包下的并发容器 Java的集合容器框架中&#xff0c;主要有四大类别&#xff1a;List、Set、Queue、Map&#xff0c;大家熟知的这些集合类ArrayList、LinkedList、HashMap这些容器都是非线程安全的。 所以&#xff0c;Java先提供了同步容器供用户使用。 同步容器可以简单地…

【C++面向对象】2.构造函数、析构函数

文章目录 【 1. 构造函数 】1.1 带参构造函数--传入数据1.2 无参构造函数--不传入数据1.3 实例1.4 拷贝构造函数 【 2. 析构函数 】 【 1. 构造函数 】 类的构造函数是类的一种特殊的成员函数&#xff0c;它会 在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同…

ARM可用的可信固件项目简介

安全之安全(security)博客目录导读 目录 一、TrustedFirmware-A (TF-A) 二、MCUboot 三、TrustedFirmware-M (TF-M) 四、TF-RMM 五、OP-TEE 六、Mbed TLS 七、Hafnium 八、Trusted Services 九、Open CI 可信固件为Armv8-A、Armv9-A和Armv8-M提供了安全软件的参考实现…

MT8195/MTK8195安卓核心板-安卓智能模块

MT8195安卓核心板是一款先进的处理器&#xff0c;采用了台积电的6纳米制程技术。它由4个Cortex-A78大核和4个Cortex-A55小核组成&#xff0c;搭配Mali-G57MC5 GPU和APU 3.0&#xff0c;算力高达4 TOPs。该核心板支持四通道LPDDR4X 2133MHz内存&#xff0c;具备出色的性能。此外…