程序猿的24个段子:栈和队列的区别是啥

程序猿的24个段子:栈和队列的区别是啥,第1张

1.队列先进先出,栈先进后出。

2. 对插入和删除 *** 作的"限定"。 栈是限定只能在表的一端进行插入和删除 *** 作的线性表。 队列是限定只能在表的一端进行插入和在另一端进行删除 *** 作的线性表。 从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本 *** 作集不同外,主要区别是对插入和删除 *** 作的"限定"。 栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本 *** 作的特殊性,栈必须按"后进先出"的规则进行 *** 作,而队列必须按"先进先出" 的规则进行 *** 作。和线性表相比,它们的插入和删除 *** 作受更多的约束和限定,故又称为限定性的线性表结构。

3.遍历数据速度不同。栈只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性队列怎不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多

栈(Stack)是限定只能在表的一端进行插入和删除 *** 作的线性表。

队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除 *** 作的线性表。

从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本 *** 作集不同外,主要区别是对插入和删除 *** 作的"限定"。

栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本 *** 作的特殊性,栈必须按"后进先出"的规则进行 *** 作,而队列必须按"先进先出"的规则进行 *** 作。和线性表相比,它们的插入和删除 *** 作受更多的约束和限定,故又称为限定性的线性表结构。可将线性表和栈及队列的插入和删除 *** 作对比如下:

线性表

Insert(L,i,x)

(1≤i≤n+1)

Delete(L,i)

(1≤i≤n)

如线性表允许在表内任一位置进行插入和删除

Insert(L,n+1,x)

Delete(L,n)

而栈只允许在表尾一端进行插入和删除

队列

Insert(L,n+1,x)

Delete(L,1)

队列只允许在表尾一端进行插入,在表头一端进行删除

有这个一方面。

不过

更多的是这些语言的产生顺序。

C++的产生是基于C的,

java借鉴了很多C++的,

C#借鉴的java和C++。

于是在产生之初,比如C++借鉴C而生。

此时的C工程师大多比C++资历老,水平高,

而初始的语言各方面还不成熟,自然被鄙视。

其他链节也是如此。

虽然到现在,

java已经反超,应用范围还是成熟度都不弱于任何其他语言了,

但鄙视链条已经形成,

也没人去改它了(除了被鄙视的

哈哈)

至于美工,

这个是编程人员对所有非编程人员的鄙视,美工,运营,

项目管理,测试,甚至产品经理都在此列。

理想主义者、追求完美、敬业、技术狂、自嘲、偏执等等,也许能把这些符号都集中在一个职业身上,那么一定是程序员。我做程序员开发多年,对程序员工作的热爱是一种发自内心的感觉,也许职业真的能改变一个人,就像我当年刚参加工作的时候,特别不理解一个老专家对着一台打印机搞到晚上12点,然后一脸的墨水,搞定之后还开心的像个孩子一样,我现在就特别理解,这就是程序员!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12195323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存