自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 进程基本概念

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

2018-04-26 17:52:07 221

原创 栈和队列面试题(四)

四、一个数组实现两个栈(共享栈)思想:一个数组,前半部分为栈1,后半部分为栈2,栈1往后插入栈2往前插入;代码实现:#include <stdio.h>#define SharedStackMaxSize 1000typedef char SharedStackType;//[0,top1)区间表示第一个栈//[top2,SharedStackMaxSize)区间表示第二...

2018-04-25 11:13:10 78

原创 栈和队列面试题(三)

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

2018-04-25 10:58:51 128

原创 栈和队列面试题(二)

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

2018-04-25 10:21:22 142

原创 栈和队列面试题(一)

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

2018-04-24 23:16:21 84

原创 线程的概念及基本操作

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

2018-04-22 21:38:43 163

原创 链式队列基本操作的实现

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

2018-04-15 21:31:45 505

原创 顺序队列基本操作的实现

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

2018-04-15 21:17:22 1630

原创 顺序栈基本操作的实现

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

2018-04-15 20:58:00 776

原创 链式栈基本操作的实现

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

2018-04-15 20:31:23 686

原创 双向链表2

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

2018-04-13 17:16:31 73

原创 链表面试题2

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

2018-04-13 16:34:24 115

原创 链表常见笔试题

声明:typedef char LinkNodeType;typedef struct LinkNode { LinkNodeType data; struct LinkNode* next;}LinkNode;1.逆序打印单链表分析:应用递归的思想,遍历链表,递归出口为head==NULL,代码如下:void LinkListReversePrint(LinkNo

2018-04-09 18:01:34 973

原创 单链表的基本操作

以下操作针对不带头结点不带环的的单向链表首先linklist.h头文件代码:#pragma oncetypedef char LinkNodeType;typedef struct LinkNode { LinkNodeType data; struct LinkNode* next;}LinkNode;//初始化链表void LinkListInit (LinkN

2018-04-04 17:49:04 156

原创 双向链表的基本操作

双向链表为带头结点的双向链表以下为双向链表的dblinklist.h代码:#pragma once typedef char DLinkNodeType;typedef struct DLinkNode{ DLinkNodeType data; struct DLinkNode* prev; struct DLinkNode* next;}DLinkNode;//初始化voi

2018-04-04 16:16:12 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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