c c++ go python java 数据结构

数组

//c
double array1[2] = {1.0, 2.25};  //元素为double类型的数组,在定义时指定数组的长度为2
int array2[] = {1,2,3};  //元素为int类型的数组,在定义时如果不知道元素的个数可采用这种方式
int array3[2][2] = {
{1,2},
{3,4}
};  //定义二维数组,如果定义多维数组,则添加更多的中括号即可

//c++
//c中的数组定义也适用于c++
int array1[2] = {1,2};
int array2[] = {1,2};

//c++中增加了更为方便的vector
vector<int> vector1;  //声明一个int型的向量vector1
vector<int> vector2(10);  //声明一个int型的向量vector2,初始大小为10

//java
int[] array1;  //定义int类型的数组,未初始化
int[] array2 = {1,2,3};

//go 
array1 := [5]int{}  //声明数组,未
array2 := [...]int{1,2,3,4,5}  //声明数组
array3 := [2][2]int{{1,2}, {3,4}}  //声明二维数组
  • python中没有数组的概念,如果要用数组,可以直接利用list来实现相关功能
  • c、c++、java、go都可以定义数组,并且数组只可以更改和查找,不能直接进行增加和删除操作。
  • c++比c多了vector的功能,可以方便对数组进行增删查改;
  • c、c++、java、go定义数组时都需要花括号来定义元素;

后进先出(LIFO-last in first out):最后插入的元素最先出来。

  • c,go,java需要自己封装一个栈

  • c++里面封装了栈的标准库#include

  • python的内置数据结构list可以用来实现栈,用append()向栈顶添加元素, pop() 可以以后进先出的顺序删除元素

队列

先进先出(FIFO-first in first out):最先插入的元素最先出来。

  • c++ 标准库实现了队列

  • python中Queue实现了队列

  • Java中的 Queue 继承自 Collection 接口 ,Deque, LinkedList, PriorityQueue, BlockingQueue 等类都实现了它。

列表

  • c++: list
  • go:list
  • java: java.util.List
  • python :列表是python自带的基本数据结构之一

链表

  • c/c++,python,java,go中链表都需要自己封装

字典

  • c++:

  • python : python中字典是另一种可变容器模型,且可存储任意类型对象。

  • go: map

  • java: Dictionary 类是抽象类,存储【键/值】】对,和Map类相似,但是已经过时了,实际开发中,可以通过实现Map接口来获取键/值的存储功能

集合

  • c/c++集合需要自己封装
  • 在 Java 类库中,集合类的基本接口是 Collection 接口。它继承了 Iteratable 接口,对任何扩展了 Collection 的集合类,都可以使用迭代器对元素进行访问。
  • python:集合(set)是一个无序的不重复元素序列。
  • Go内置集合中没有Set实现,可以使用map[type]bool

散列表/哈希表

哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。

散列表是一种实现字典的特定方式,除了除了哈希表,实现字典的另一种常见方式是red-black trees。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×