目录

数据结构

1.线性结构(不止四个):

写法:

2.非线性(不止这些)

写法:


数据结构

1.线性结构(不止四个):

栈、队列、一维数组、vector……

写法:

s.empty();         //如果栈为空则返回true, 否则返回false;
s.size();          //返回栈中元素的个数
s.top();           //返回栈顶元素, 但不删除该元素
s.pop();           //弹出栈顶元素, 但不返回其值
s.push();          //将元素压入栈顶
#include <stack>//栈的头文件
#include <iostream>
using namespace std;int main()
{stack<int> mystack;//栈的变量定义int sum = 0;for (int i = 0; i <= 10; i++){mystack.push(i);}cout << "size is " << mystack.size() << endl;while (!mystack.empty()){cout << " " << mystack.top();mystack.pop();}cout << endl;system("pause");return 0;
}
//size is 11
// 10 9 8 7 6 5 4 3 2 1 0

队列:

q.empty()               如果队列为空返回true,否则返回false
q.size()                返回队列中元素的个数
q.pop()                 删除队列首元素但不返回其值
q.front()               返回队首元素的值,但不删除该元素
q.push()                在队尾压入新元素
q.back()                返回队列尾元素的值,但不删除该元素
#include <queue>//队列头文件
#include <iostream>
using namespace std;int main(){queue<int> q;for (int i = 0; i < 10; i++){q.push(i);}if (!q.empty()){cout << "队列q非空!" << endl;cout << "q中有" << q.size() << "个元素" << endl;}cout << "队头元素为:" << q.front() << endl;cout << "队尾元素为:" << q.back() << endl;for (int j = 0; j < 10; j++){int tmp = q.front();cout << tmp << " ";q.pop();}cout << endl;if (!q.empty()){cout << "队列非空!" << endl;}system("pause");return 0;
}

一维数组(太多,不想写):

详解见:https://blog.csdn.net/qiancm/article/details/118704372

vector:

vector<int> v1;
vector<father> v2;
vector<string> v3;
vector<vector<int> >;  //注意空格。这里相当于二维数组int a[n][n];
vector<int> v5 = { 1,2,3,4,5 }; //列表初始化,注意使用的是花括号
vector<string> v6 = { "hi","my","name","is","lee" };
vector<int> v7(5, -1); //初始化为-1,-1,-1,-1,-1。第一个参数是数目,第二个参数是要初始化的值
vector<string> v8(3, "hi");
vector<int> v9(10); //默认初始化为0
vector<int> v10(4); //默认初始化为空字符串

详解见:https://blog.csdn.net/qiancm/article/details/119611928

2.非线性(不止这些)

二维(多维)数组、树、图……

写法:

二维数组:

#include <cstdio>
int main(){int i, j;  //二维数组下标int sum = 0;  //当前科目的总成绩int average;  //总平均分int v[3];  //各科平均分int a[5][3];  //用来保存每个同学各科成绩的二维数组printf("Input score:\n");for(i=0; i<3; i++){for(j=0; j<5; j++){scanf("%d", &a[j][i]);  //输入每个同学的各科成绩sum += a[j][i];  //计算当前科目的总成绩}v[i]=sum/5;  // 当前科目的平均分sum=0;}average = (v[0] + v[1] + v[2]) / 3;printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);printf("Total: %d\n", average);return 0;
}

三维数组:

#include <bits/stdc++.h>
using namespace std;
int main() {
int array[3][2][2] = {0,1,2,3,4,5,6,7};printf("%d %d %d %d\n",&array[0],&array[0][0],&array[0][0][0],&array);//地址和值都是一样的//下面的四行代码相当于立方体的第一层printf("%d ",array[0][0][0]);printf("%d ",array[0][0][1]);printf("%d ",array[0][1][0]);printf("%d\n",array[0][1][1]);//下面的四行代码相当于立方体的第二层printf("%d ",array[1][0][0]);printf("%d ",array[1][0][1]);printf("%d ",array[1][1][0]);printf("%d\n",array[1][1][1]);//下面的立方体相当于第三层printf("%d ",array[2][0][0]);printf("%d ",array[2][0][1]);printf("%d ",array[2][1][0]);printf("%d\n",array[2][1][1]);return 0;
}

多维(目前还无法理解)╮(╯▽╰)╭

树(太多,不想写):

详见:https://blog.csdn.net/qiancm/article/details/118480436

图(也好多,不想写):

详见:https://blog.csdn.net/qiancm/article/details/119612514

数据结构 详解(C++)相关推荐

  1. 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。

    本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...

  2. redis数据结构详解之Hash(四)

    原文:redis数据结构详解之Hash(四) 序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个 ...

  3. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

  4. [转]Redis内部数据结构详解-sds

    本文是<Redis内部数据结构详解>系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds. 不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构.sds正是在Redis中被 ...

  5. Redis数据结构详解之Zset(五)

    原文:Redis数据结构详解之Zset(五) 序言 Zset跟Set之间可以有并集运算,因为他们存储的数据字符串集合,不能有一样的成员出现在一个zset中,但是为什么有了set还要有zset呢?zse ...

  6. 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》

    [肝帝一周总结:全网最全最细]☀️Mysql 索引数据结构详解与索引优化☀️<❤️记得收藏❤️> 目录

  7. [redis] 10 种数据结构详解

    [redis] 10 种数据结构详解 简介 5种常见数据结构 string: 最常见的 string key value list: 双向链表 set: 集合- zset: 有序集合 hash: 类似 ...

  8. 数据结构详解——最大(小)左倾树

    数据结构详解--最大(小)左倾树 文章目录 数据结构详解--最大(小)左倾树 最大(小)左倾树的定义及用途 操作最大HBLT 合并操作 插入操作和删除操作 初始化操作 Java语言实现的最大HBLT ...

  9. 探索Redis设计与实现6:Redis内部数据结构详解——skiplist

    Redis内部数据结构详解(6)--skiplist  2016-10-05 本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skipl ...

  10. Redis底层数据结构详解

    Redis底层数据结构详解 我们知道Redis常用的数据结构有五种,String.List.Hash.Set.ZSet,其他的集中数据结构基本上也是用这五种实现的,那么,这五种是Redis提供给你的数 ...

最新文章

  1. mac 配置apache 服务器 实现手机pc 端局域网传输
  2. matlab工作区保留或者清除部分变量
  3. 二级联动菜单(javascript)
  4. boost::xtime相关的测试程序
  5. 通过internet在计算机之间以用户名,第7_8章_计算机网络和Internet应用.doc
  6. 用Python爬取Bilibili上二次元妹子的视频
  7. 在linux命令下导出导入.sql文件的方法
  8. 27代理模式(Proxy Pattern)
  9. php util.js,javascript中一些util方法汇总_javascript技巧
  10. 复选框与文字无法对齐问题
  11. Servlet和JSP学习指南
  12. 微信小程序、小游戏反编译获取源码
  13. C语言之编程规范及细节知识(学C必看)
  14. 解决Windows密码错误无法进入系统的问题
  15. Java项目:自习室图书馆座位预约管理系统(java+SSM+JSP+easyUI+mysql)
  16. 鼠标放上去会变色的按钮
  17. 提高下载微软产品的速度(改host)
  18. CORBA的简单介绍及HelloWorld
  19. 怎样屏蔽百度搜索侧边栏推荐以及热搜榜广告
  20. Flutter 实现原理及跨平台实践

热门文章

  1. 跟我一起学docker(14)--docker swarm的使用
  2. 比特币创业公司Circle首获数字货币许可证
  3. 电脑管理器地址栏 按右键会有的功能
  4. Picasso通过URL获取--用户头像的圆形显示
  5. backbond Model实现
  6. 环境配置就是安装软件,修改软件的配置文件,安装软件就是文件的复制,与新增--linux下一切皆文件...
  7. 由浅入深探究mysql索引结构原理、性能分析与优化
  8. 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
  9. SCSI和RAID控制器
  10. 美图个性化推荐的实践与探索