- 博客(80)
- 资源 (4)
- 收藏
- 关注
转载 多线程 ---并发与并行概念总结
转载自:https://blog.youkuaiyun.com/qq_33290787/article/details/51790605> 软件开发,网站开发过程中经常有并发,并行这样的多线程处理与应用。因此,有必要对其进行了解与掌握。多线程:在了解线程之前,要先知道进程这个概念。进程是一个具有独立功能的...
2018-08-15 21:53:19
841
1
原创 浅析C语言auto关键字和C++ 中的auto关键字
最近在读《C++ Prime》,不禁想感叹一句:C++真是一种美丽的语言!!!!!!! C++提供了相比于 C语言更加丰富的库函数,功也更加强大。举个例子吧。
2018-06-22 12:36:35
44943
5
原创 数据结构:顺序表、单链表、栈和队列的简单总结
首先,顺序表、链表、栈和队列都属于线性表,都可以采用两种基本的存储结构:顺序存储结构和链式存储结构来存储。结构中的元素之间存在一对一的线性关系。既然,顺序表、链表、栈和队列都属于线性表,那么有必要简单的谈一谈线性表。 线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基本特点是线性表中的数据元素是有序且是有限的。在这种结构中:① 存在一个唯一的被称为“第一个...
2018-06-02 19:51:00
11826
1
原创 回文判断。称正读与反读都相同的字符序列为回文序列
试写一个算法,判断依次读入的一个以@为结束符的字符序列,是否为形如“序列1&序列2”模式的字符序列。其中序列1和序列二都不含字符“&”,且序列2是序列1的逆序列。例如,"a+b&b+a"是属该模式的字符序列,而"1+3&3-1"则不是。 通过栈与队列相关内容的学习,我们知道,栈是"先进后出"的线性表,而队列是"先进先出"的线性表。可以通过构造栈
2018-05-25 00:23:19
19414
11
原创 使用标志量消除循环链表“假溢出”的入队和出队算法
问题:要求循环变量不损失一个空间全部都能利用,设置一个标志量tag,以tag为0或为1来区分头尾指针相同时的队列状态。请编写出此结构相应的入队与出队算法。 设标志位tag,初始化时将tag置为0,当入队成功时tag = 1;出队成功时tag = 0;队列为空的判断条件为:...
2018-05-24 00:10:01
1397
原创 数据结构:不带头结点的链式队列的实现
/*----------------------------------------------------------------* 设立一个队首指针front ,一个队尾指针rear ,分别指向队首和队尾元素。* ◆ 初始化:LQ->front = LQ->rear = NULL;将队列的尾指针和头指针置空,* 由于不带头结点,所有不需要为头结点开辟空间* ◆ 判断队列是...
2018-05-23 11:25:11
7247
原创 队列的基本操作(顺序队列、循环队列、链式队列)
        队列也是一种线性表,是一种先进先出的线性结构。队列只允许在表的一端进行插入(入队)、删除(出队)操作。允许插入的一端称为队尾,允许删除的一端称为队头。        队列的基本操作包括: 初始化队列:InitQueue(Q)   &
2018-05-23 01:17:35
50547
18
原创 删除单链表中的倒数第k个结点
算法思想:定义两个指针,pFast和pSlow,都指向头结点,pFast先后移k-1位,使pFast指向第k个结点,此时pSlow就是相对pFast的倒数第k个结点。然后同时后移,当pFast走到表尾时,pSlow正好指向倒数第k个结点。然后将pSlow指向的结点删除。 删除单链表中的倒数第k个结点,首先要确定倒数第k个结点的位置。//查找指向链表中的倒数第k个结点的指针...
2018-05-16 20:36:00
2441
原创 设一个没有头结点指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个结点),将该结点从单链表中删除,要求时间复杂度O(1)
问题:设一个没有头结点指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个结点),将该结点从单链表中删除,要求时间复杂度O(1) 详细描述这一过程: //删除链表中pDel指向的结点void Delete(LinkList* pHead, Node* pDel){ Node* ...
2018-05-16 10:42:45
2886
原创 链表逆置和从尾到头打印单链表
        链表的逆置和链表从尾到头打印是两个不同的概念,链表的逆置就是将链表(a1,a2,a3…an)转化为(an,a(n-1),..a1),链表结构会发生改变;而从尾到头打印链表是将链表中的元素逆序打印,即从尾结点开始依次打印,链表的结构不发生改变。    &nbsp
2018-05-16 00:04:52
1923
2
原创 不带头结点的链表的基本操作
与带头结点的单链表相比,不带头结点的单链表没有头结点,可以简单的理解为,带头结点的单链表的的头结点一般数据域不存元素,指针域指向第一个结点,头指针(假设为pHead)指向头结点,而不带头结点的单链表,头指针指向单链表的第一个结点,如果把链表中的结点进行编号,带头结点的链表的头结点可以理解为是其第0个结点,头指针pHead指向头结点即第0个结点,不带头结点的指针指向第1个结点。 带
2018-05-09 16:56:26
3899
原创 数据结构:单链表的基本操作
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。这组存储单元可以是连续的,也可以是不连续的。链表中的数据是以结点来表示的,一个结点包含数据域和指针域,数据域用来存储结点的值,指针域用来存储数据域的直接后继的地址,单链表结点的而结构如下图: 一般情况下使用链表只关心链表中结点之间的逻辑关系,并不关心链表的每个结点的实际存储位置,通常用箭头来表示链域
2018-05-07 19:57:40
6266
1
原创 数据结构:顺序表的基本操作
线性表的顺序存储顺序表的线性存储示意图C语言定义线性表的顺序存储结构线性表的顺序存储 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上相邻的元素存储在连续的物理存储单元中,即:通过数据元素物理存储的连续性来反应元素之间逻辑上的相邻关系。采用顺序存储结构存储的线性表通常简称为顺序表。 顺序存
2018-05-03 22:50:05
107662
21
原创 数据结构中的基础概念
数据:数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。 数据包括:整形、实型、布尔型、图像、声音、字符等等。数据元素:数据元素是组成数据的基本单位,是数据集合的个体; 数据对象:数据对象是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C,…} 。 数据项:一个数据可以由一个或多个数据项组成,数据项是对客观事物某一方面特性的数据描述,是...
2018-05-02 21:24:23
702
转载 C语言 system函数
Windows函数windows操作系统下system () 函数详解(主要是在C语言中的应用) 函数名: system功 能: 发出一个DOS命令用 法: int system(char *command);system函数已经被收录在标准c库中,可以直接调用程序例:#include <s...
2018-05-02 20:12:04
1950
转载 C语言头文件大全
ctype.h 字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 —————————————- 字符测试是否字母和数字 isalnum 是否字母 isalpha 是否控制字符 iscntrl 是否数字 isdigit 是否可显示字符(除空格外) isgraph 是否可
2018-05-01 22:51:15
3746
转载 C语言_FILE结构体的简单认识
1、文件和流的关系C将每个文件简单地作为顺序字节流(如下图)。每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中。当打开文件时,就建立了和文件的关系。在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流、标准输出流和标准错误。流提供了文件和程序的通信通道。例如,标准输入流使得程序可以从键盘读取数据,而标准输出流使得程序可以在屏幕上输出
2018-04-30 17:40:19
2025
原创 循环移位:循环左移和循环右移
循环移位就是把数值变成二进制,然后循环移动的过程;换句话说,循环移位就是将移出的低位放到该数的高位(循环右移)或把移出的高位放到该数的低位(循环左移),左移,和右移动都是对整数进行的操作,在Win32控制台应用程序中,整形占4Byte节32bit。 循环左移的过程: ...
2018-04-30 15:35:46
83293
11
原创 位运算符:按位与(&),按位或(|),按位异或(^),取反(~)左移(<<)和右移(>>)
数据在内存中是以二进制的形式存放的,计算机存储数据的最小单位是位(bit),一个二进制位可以表示两种状态(0和1),一个字节通常由8位二进制位组成。C语言支持按位运算,按位运算也就是对字节或者字中的实际位进行操做。 C语言的位运算符包括: 运算符 含义 &am...
2018-04-26 21:09:56
17299
原创 栈的应用:一个简单行编辑程序
一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上输入时,不能保证不出差错,因此,若在编辑行中,“每接受一个字符,即存入用户数据区”的做法显然是不恰当的。较好的做法是,设立一个输入缓冲区,用于接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时,及时更正。例如,当用户...
2018-04-25 15:56:03
4668
原创 栈的应用:括号匹配检验
输入包含括号的表达式,包含3中括号:圆括号(),方括号[],大括号{};其嵌套顺序随意,即()或{{()[]}}等均为正确的输入格式,检验输入表达式中的括号是否匹配。源代码:BracketMatch.h#ifndef __BRACKETMATCH_H__#define __BRACKETMATCH_H__#define MAXSIZE 100typedef char DataType;type
2018-04-23 11:39:03
1838
1
原创 数据结构:链式栈的基本操作
采用链式存储的栈称为链式栈或者链栈,采用单向链表实现,链栈由一个个结点构成,结点包括数据域和指针域两部分。数据域存放链栈中的元素,指针域表示元素之间的关系。插入和删除元素的一端称为栈顶,栈顶由栈顶指针top指示,带头结点的链栈,栈顶指针top始终指向头结点,头结点的指针始终指向链栈的第一个结点。与顺序栈相比,链栈的结点空间可以动态申请,因此,不...
2018-04-18 15:53:25
10931
4
原创 数据结构:顺序栈的基本操作
采用顺序存储结构的栈称为顺序栈。顺序栈利用一组连续的存储单元存放栈中的元素,存放顺序依次从栈底到栈顶。由于栈中元素之间的存放地址的连续性,在C语言中,同样采用数组实现栈的顺序存储。另外,增加一个栈顶指针top,用于指向顺序栈的栈顶元素。 通常top=0或者top=-1表示栈为空。两者的...
2018-04-16 20:25:22
10069
2
原创 汉诺塔问题的递归和非递归实现
汉诺塔问题:古代有一个梵塔,塔内有3个基座,A基座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把盘子由A座移到B座,但每次只能移动一个盘子,3个基座上的盘子都始终保持大的在下,小的在上。移动过程中可以利用C基座做辅助,求解其移动过程。 汉诺塔问题是递归算法比较经典的...
2018-04-10 21:24:33
3712
3
原创 蛮力法求解“狱吏问题”
问题描述:狱吏问题;某国王对囚犯进行大赦,让一狱吏n次通过一排锁着的n间牢房,每通过一次按所定规则转动n间牢房中的某些门锁,每转动一次原来锁着的被打开,原来打开的被 锁上通过n次后,门锁开着的,牢房中的犯人被放出,否则,犯人不得释放。 转动门锁的规则是这样的,第一次通过牢房,从第...
2018-03-31 17:30:06
2745
原创 编写算法对输入的一个整数,判断它能否被4、7、9整数
编写算法对输入的一个整数,判断它能否被4、7、9整数,并输出以下信息之一: ① 能同时被4、7、9整除; ② 能被其中两个数(要指出那两个)整除; ③ 能被其中一个数(要指出哪一个)整除; ④ 不能被4、7、9任一个整除。源代码#include<stdio.h>#include<stdlib.h>void pri...
2018-03-29 21:27:07
3612
原创 使用蛮力法求解数字迷问题(类似ABCAB*A = DDDDDD)
蛮力法概述 蛮力法是一种简单直接地解决问题的方法,常常直接基于问题的描述>和所涉及的概念定义。是基于计算机运算速度快这一特性,在解决问题时采用的一种“懒惰”的策略。把问题的所有情况或所有过程交给计算机去一一尝试,从中找到问题的解。特性 (1)理论上,蛮力法可以解决可计算领域的各种问题。 (2)蛮力法经常用来解决一些较小规模的问题。 (3)对于一些...
2018-03-29 21:15:33
7604
原创 三种算法实现:从键盘输入任意正整数,从低位到高位逐位输出各位数字
循环算法#include<stdio.h>int main(){ int n; scanf("%d", &n); int m; int a[100]; int k; while (n >= 10) //当n小于10则直接输出各位数字 { m = n % 10; p
2018-03-29 19:21:52
25833
1
原创 《C语言深度解剖》signed,unsigned关键字后面3个问题的理解
题目1.-0和+0在内存中是怎样存储的? 2.int i =-20 ;unsigned j =10;i+j 的值是多少?为什么? 3.下面的代码有什么问题?unsigned i;for(i=9;i>=0;i--){ printf("%u\n",i);}1.-0和+0在内存中是怎样存储的? 1.假设+0 ...
2018-03-21 22:04:51
1558
原创 在switch case 语句中能否使用continue关键字?
毋庸置疑,在switch case 语句中不能使用continue 关键字。continue语句的作用是跳出本次循环,转入执行下一次循环。故而,continue语句只能用于循环语句中,而switch case语句为多分支选择语句,不是循环语句,所以在switch case 语句中是不能使用continue 关键字的(除非把continue关键字...
2018-03-15 21:09:32
14795
原创 如何录制gif动态图片并在优快云中插入动态图片
我们在网上浏览别人的博客时,经常可以看到以gif动态图显示的程序效果演示和代码段,那么如何录制gif动态图片并在优快云中插入动态图片呢? 下面介绍一种简单的方法,了解之后,你也可以将其应用在自己的博客中,以动态图的方式展示程序运行结果,当我们想要在程序中更加清晰的演示自己写的代码的运行结果时,再也不用用好几张图片来展示以达到自己期望的效果。我们可以采用一种高端大气的方式——以动态图
2018-03-12 20:38:28
5959
9
原创 C语言实现猜数字小游戏
源代码#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#include<Windows.h>void menu(){ printf("##############################\n"); printf("### 1.play 2.exit####\n
2018-03-12 17:10:10
1093
转载 10个非常有趣的Linux命令【转载】
Linux当中有很多比较有趣的命令,可以动手看看,很简单的。1、rev命令一行接一行地颠倒所输入的字符串。运行:$rev如输入:shiyanloushiyanlourev.jpg2、asciiview命令1)先安装aview$sudo apt-get install aview2)再安装imagemagick$sudo apt-get install imagemagick3)使用asc
2018-02-27 10:51:46
338
原创 Linux下Mysql数据库安装和简单操作
Mysql数据库的安装更新设置到最新系统:$ sudo apt-get update Mysql 服务器安装:$ sudo apt-get install mysql-server Mysql 客户端安装:$ sudo apt-get install mysql-client Mysql 开发包安装:$ sudo apt-get install libmysqlclient-dev在...
2018-02-24 18:19:57
870
转载 Linux的Socket编程详解
这是一篇不错的文章,对socket编程中的原理和要点讲解的都很清楚。—————————— Linux的SOCKET编程详解 1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信
2018-02-23 20:07:46
294
原创 linux网络编程epoll模型简单总结
epoll 与 select 和 poll 在使用和实现上有很大区别。首先, epoll 使用一 组函数来完成,而不是单独的一个函数;其次, epoll 把用户关心的文件描述 符上的事件放在内核里的一个事件表中,无须向 select 和 poll 那样每次调 用都要重复传入文件描述符集合事件集。 epoll函数的原型为:int epoll_create(int size);功能:创建e
2018-02-11 19:34:08
479
原创 select函数用法简单总结
在Linux中我们可以通过man + 函数名, 命令查看Linux编程手册从而查看一个函数的具体用法。select函数原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);需要包含的头文件有: #include <sys/select.h>
2018-02-11 19:06:38
1451
原创 Linux 实现遍历打印子目录中所有文件
实现函数,完成对指定文件的多层级监控,将目录下的所有文件遍历打印出来。源代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<fcntl.h> 4 #include<dirent.h> 5 #include<sys/stat.h> 6 #include<sys/types.h> 7 #include<str
2018-02-06 17:20:50
2806
转载 Linux下DIR,dirent,stat等结构体详解
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义: struct __dirstream { void *__fd; char *__data; int __entry_data; char *__ptr;
2018-02-02 16:35:29
566
原创 Linux 简单文件操作
Linux系统对文件有极其严格的保护。如果用户不具备访问某个文件或目录的权限,那么就不能对文件进行操作。文件的属性和权限是Linux中目录和文件的两个基本特性。查看文件的属性 在Linux中可以通过:ls -l 查看文件或目录的属性,输出中每行文件信息的第一组字符串就是文件的权限信息。 ls -l以长格式显示目录下的内容列表,从左到右以此为:文件的权限标志文件的链接个
2018-01-21 11:47:57
347
LICEcap录制gif动态图软件
2018-03-12
数据库实验报告
2017-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人