C语言/C++编程新手入门基础知识整理学习

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

1 C语言的基础

2 数据类型与运算规则

3 结构设计:顺序结构、分支结构(选择结构)、循环结构

4 数组

5 指针

6 函数

7 数组、指针、函数(结合)

8 对C语言深入理解

9 结构体、共用体

10 文件

公共基础知识(30数据结构、数据库、软件工程、面向对象的思想...)

------------------------------------------------------------------------------------

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

1 数据结构与算法(较大)

1 算法 :解决问题的方法和步骤

2 算法的5个特性:可行性、确定性、有穷性、零个或多个输入、一个或多个输出

3 算法的优劣(时间复杂度(语句频度(语句重复执行的次数,最多))、空间复杂度)

时间复杂度:

int a = 1;

for(i = 1;i <= n;i++)

{

a = a + 1;//n次---O(n) O数量级

}

1 3 5-------O(1)

n n+2 2*n+3...-----O(n)

n^2 2*n^2 +3-------O(n^2)

4 数据结构 = 数据+结构(结合):数据以及数据之间的关系

5 数据:文字、声音、图片、视频...(只要能被计算机所识别的符号)

6 结构(数据间的关系):

3个同学之间关系是亲兄弟(逻辑),他们分别在2/4/8三个座位上。

逻辑结构(逻辑关系):集合、线性结构、树形结构、图形结构(了解)

线性 非线性

存储结构(物理关系):顺序存储、链式存储

集合(一个大的集合)

线性结构: a1→a2→a3→a4....→an

唯一的第一个元素

唯一的最后一个元素

唯一的直接前驱(a3,直接前驱是a2)

唯一的直接后继(a3,直接后继是a4)

线性表、栈、队列、(串、数组、广义表--了解)

1 线性表--最简单的线性结构(a1,a2,a3...an)

插入(在a3之前插入q):(a1,a2,q,a3...an)

删除(删除a2):(a1,q,a3...an)

修改:直接找到编辑:(m,q,a3...an)

2 栈(受限制的线性表):只能在一端进行插入和删除

插入和删除的一端---栈顶

不能操作的一端---栈底

插入元素----入栈

删除元素----出栈

特点:FILO(first in last out)先进后出

LIFO------------------后进先出

举例:子弹夹(先转进去的子弹最后出来)

3 队列(受限制的线性表):只能在一端进行插入,只能在另一端进行删除

插入的一端---队尾(入队)

删除的一端---队头(出队)

特点:FIFO(first in first out)先进先出

LILO------------------后进后出

举例:排队(排在前面的先出去买票)

--------存储结构(看得见)-----

顺序存储:逻辑和物理相统一(逻辑上是什么关系,存储上就是怎么存的)

张三(哥)、李四、王五(弟)

第1个 第2个 第3个

数组来实现(空间要连续)

缺点:空间连续(3000万数据,连续存储)

链式存储:逻辑和物理不一定要统一(用一个节点占多个空间)

(顺序存储,1个数据占1个空间,需要占多个--举例2个空间)

备注:循环队列中元素的个数等于=(rear-front+MAXSIZE)%MAXSIZE

(29 - 5 + 50)%50 = 74%50 = 24

29 - 5 = 24

(5 - 29 + 50)%50

-----------------------------------------------------------------------------------------

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

//复习:数据结构与算法

1 算法:解决问题的办法;5个特性,时间复杂度(语句频度(最大的那个执行次数,数量级(O(1) O(n) O(n^2))))、空间复杂度

2 数据结构:数据+结构

3 数据:文字,凡是能被计算机所识别的符号(文字、图片、视频、声音、文档....)

4 结构(数据间的关系):逻辑结构、存储结构(物理结构)

5 逻辑结构:集合(了解)、线性结构(线性)、树形结构、图形结构(非线性)

6 存储结构:顺序存储(逻辑和存储相统一,空间连续)、链式存储(逻辑和存储不需要统一,空间不需要连续)、索引存储、散列存储(了解)

7 线性结构:线性表、栈、队列(4个唯一:唯一的第一个元素、唯一的最后一个元素、唯一的直接前驱、唯一的直接后继)

(a1,a2,a3,a4,a5....an);

8 线性表

9 栈:受限制的线性表(只能在一端进行插入和删除),特点:FILO先进后出(递归,具有记忆功能、子程序调用),栈顶(插入和删除的那端),栈底(不能动)

10 队列:受限制的线性表(只能在一端进行插入,只能在另一端进行删除),特点:FIFO,队头(删除),队尾(插入):头删除、尾插入,循环队列(顺序)

11 存储结构:顺序存储、链式存储

12 顺序存储:数组实现,空间连续(查找方便,对空间要求太高)

13 链式存储:结点(一个数据域,多个指针域(1个,2个...))

4 树形结构

1 非线性

2 结点的度、树的度、树的深度

3 二叉树(树中任何一个节点的分支的个数要小于2)

4 二叉树的5中形态

5 二叉树的5个性质(p137)

性质4:具有n个结点的完全二叉树,深度为[log2n]+1([log2n]取整数,不会四舍五入)

完全二叉树、满二叉树

满二叉树:二叉树的每个分支都是满的

完全二叉树:二叉树的每个分支要么都是满的,要不就是最后一层的分支可以不满,如果要有右分支,必须要有左分支

满二叉树是完全二叉树的特例。

6 二叉树的遍历:把二叉树的每个节点都走一遍

7 前序遍历:根左右:先遍历根,然后再遍历左边,最后遍历右边

8 中序遍历:左根右:...

9 后序遍历:左右根:...

10 已知前序遍历和中序遍历,能够确定后序遍历

11 已知后序遍历和中序遍历,能够确定前序遍历

12 已知前序遍历和后序遍历,不能够确定中序遍历

5 查找技术

概念:在你的表中查找,我给定的关键字

结果:如果找到了,查找成功,如果没找到,查找失败

平均查找长度:查找关键字过程中,比较的平均次数

办法:

顺序查找:从头到尾一个一个依次找(对数的要求比较低,不要排序),平均查找复杂度---O(n)

二分查找(折半查找):对半找(对数的要求很高,要求从小到大排序),O(log2n)

思想:

我要查找其中有没有89这个数:

1216182889102

首先定义两个量:low,high

123456

1216182889102

lowhigh

取:(1ow+high)/2这个位置的值(取整数,不会四舍五入)

得到的结果是3,比较89和第3个位置的数18比较,发现18小于89

把low的位置移动到18的下一个元素

123456

1216182889102

lowhigh

取:(1ow+high)/2这个位置的值(取整数,不会四舍五入)

得到的结果是5,比较89和第5个位置的数89比较,发现89等于89,这就找到了。

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

6 排序技术

交换排序法:冒泡排序法(O(n2))、快速排序法(O(n2))

插入排序法:直接插入排序(n*(n-1))/2、希尔排序(O(n1.5))

选择排序法: 简单选择(O(n2)),堆排序(O(nlog2n))

2 程序设计基础

结构化程序设计的原则:自顶向下、逐步求精、模块化、限制使用goto语句

-----------------------------------------------------------------------------------------------------------

3 软件工程基础

4 数据库设计基础(难一点)

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容