进程基本概念

一、基本概念 进程有以下几个定义: a).正在执行的程序 b).正在计算机上执行的程序实例 c).能分配给处理器并由处理器执行的实体 b).具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。 也可以把进程...

2018-04-26 17:52:07

阅读数:21

评论数:0

栈和队列面试题(四)

四、一个数组实现两个栈(共享栈)思想:一个数组,前半部分为栈1,后半部分为栈2,栈1往后插入栈2往前插入;代码实现:#include <stdio.h> #define SharedStackMaxSize 1000 typedef char Sha...

2018-04-25 11:13:10

阅读数:3

评论数:0

栈和队列面试题(三)

3.使用两个队列实现一个栈思想:创建两个队列,栈的特点为后进先出,而队列是先进先出,所以要出栈时,要先将队列1的元素出队列,同时入队列2中(此时的队列2为空),直到队列1中只有一个元素,此时这个元素就是要出栈的元素;入栈时,选择不为空的队列入队列即可;代码实现:#include &...

2018-04-25 10:58:51

阅读数:4

评论数:0

栈和队列面试题(二)

2.使用两个栈实现一个队列思想:创建两个栈,一个表示入队列的栈input,一个表示出队列的栈output,由于队列的特点为先进先出,而栈为后进先出,所以每次出队列时,要将input中的值,入栈到output中,然后在出栈output;而入队列时,将output中的值入栈到input中,然后将要入队...

2018-04-25 10:21:22

阅读数:11

评论数:0

栈和队列面试题(一)

一、实现一个栈,要求Push(入栈),Pop(出栈),Min(返回最小值的操作)的时间复杂度为O(1)。思想:创建一个栈,栈中保存着入栈的值和当前栈中的最小值,每次入栈时都入栈两个值,在入栈时先比较要插入的值与栈顶值得大小,通过打擂台的思想循环去比较,最终栈顶元素就是整个栈的最小值注意:入栈最小值...

2018-04-24 23:16:21

阅读数:7

评论数:0

线程的概念及基本操作

一、线程的概念: 首先在Linux下无真正的线程(TCB),Linux下的线程是用进程来模拟的,Linux下的进程称为轻量级进程。当我们在一个进程中运行多个执行流时,我们并不可以开辟多个进程执行我们的操作,这里需要注意的是32位机每一个进程都认为自己独享4G内存资源,此时便引入了线程。例如当我们...

2018-04-22 21:38:43

阅读数:20

评论数:0

链式队列基本操作的实现

直接上代码:linkqueue.h#pragma once typedef char LinkQueueType; typedef struct LinkQueueNode{ LinkQueueType data; struct LinkQueueNode* next; }LinkQueu...

2018-04-15 21:31:45

阅读数:18

评论数:0

顺序队列基本操作的实现

顺序队列和前面的顺序表一样,相当于一个数组,不同的是它的有效区间,当数组走到最大时,又会从头开始,这里用head 和tail两个下标来表示头和尾,即当tail到达size时,tail又从0开始,head也是同样的道理;代码如下:seqqueue.h#pragma once #define Seq...

2018-04-15 21:17:22

阅读数:33

评论数:0

顺序栈基本操作的实现

首先,定义一个结构体,结构体中有一个指针data,顺序栈的大小,还有一个capacuty,即相当于之前顺序链表的Max_Size,表示data这段内存中能容纳的元素个数,用于扩容。1.初始化:给data开辟内存空间,size设为0,capacity自定义一个值,这里定义为1000;2.销毁:释放d...

2018-04-15 20:58:00

阅读数:19

评论数:0

链式栈基本操作的实现

在单链表的基础上来实现链式栈就比较容易了 首先,定义连个结构体,一个是结点的结构体,还有一个是链式栈的结构体,链式栈的结构体中有一个指针指向栈顶。 依次实现下面的操作: 1.初始化:初始化只需要将栈顶指针置为空即可;在这需要注意要先申请一个栈,才能进行初始化。 2.销毁栈:如果栈不为空,则...

2018-04-15 20:31:23

阅读数:31

评论数:0

双向链表2

由于上一篇双向链表已经提到,这篇直接上代码,请结合上一篇双向链表来看:dblinklist.h//删除to_delete位置的元素 void DLinkListErase(DLinkNode* head , DLinkNode* to_delete); //删除delete_value值,按照值...

2018-04-13 17:16:31

阅读数:4

评论数:0

链表面试题2

有关单链表的面试题2 复杂链表的复制 //复杂链表的复制 typedef struct ComplexNode{ LinkNodeType data; struct ComplexNode* next; struct ComplexNode* random; }ComplexNo...

2018-04-13 16:34:24

阅读数:2

评论数:0

链表常见笔试题

声明: typedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* next; }LinkNode; 1.逆序打印单链表 分析:应用递归的思想,遍历链表,递归出口为hea...

2018-04-09 18:01:34

阅读数:15

评论数:0

单链表的基本操作

以下操作针对不带头结点不带环的的单向链表 首先linklist.h头文件代码: #pragma once typedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* ne...

2018-04-04 17:49:04

阅读数:2

评论数:0

双向链表的基本操作

双向链表为带头结点的双向链表以下为双向链表的dblinklist.h代码:#pragma once typedef char DLinkNodeType; typedef struct DLinkNode{ DLinkNodeType data; struct DLinkNode* pr...

2018-04-04 16:16:12

阅读数:3

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭