- 博客(50)
- 收藏
- 关注
转载 Linux、C、C++头文件
linux常用头文件如下: POSIX标准定义的头文件<dirent.h> 目录项 <fcntl.h> 文件控制 <fnmatch.h> 文件名匹配类型 <glob.h> 路径名模式匹配类型 <grp.h> 组文件 <netdb.h> ...
2018-08-18 23:09:55
461
原创 【数据结构】复杂链表的复制
链表面试题3:实现一个复杂链表的复制,复杂链表中,每个结点除了有一个pNext指针指向下一个结点外,还有一个pRandom指针指向链表中任一结点或者NULL。 题目分析: 如下图这样的复杂链表,随机指针可能指向结点前面的结点、或者结点后面的结点、也可以指向它自己或者NULL 第一反应可以将复制分为两步,先进行普通单链表的复制,再进行每个结点random随机指针的复制,但ra...
2018-07-31 17:23:48
414
原创 【数据结构】合并两个有序链表
链表面试题2:输入两个递增排序的链表,合并这两个链表并使新链表的结点仍然是按照递增排序的。 分析题目:根据题目可模拟画出如下示意图,须将链表1和链表2合并并排序为链表3 解题思路: 1、先找出链表1和链表二中较小的头结点,作为链表3的头结点 2、使链表3的头结点指向剩余链表中较小的头结点 3、重复找到剩余链表中较小结点,连向链表3 ...
2018-07-31 16:11:51
2891
1
原创 【数据结构】求链表中倒数第K个结点
链表面试题1:求链表中倒数第K个结点 分析题目: 根据题意可知,此链表为单向链表,无法从尾端回溯K步。 我们按照从k=1开始计数,即链表的倒数第一个结点是链表最后一个结点 解题思路: 方法一: 1、先遍历一遍链表,统计链表中结点的个数N(每经过一个结点计数器加1) 2、从链表的头节点开始遍历N-K步即可找...
2018-07-31 12:03:39
508
原创 【网络】网络基础
一、网络的发展需求是发明之母国外 起源(1955-1970) DAPRPA 1969ARPANET---internet的前身 1981NSF成立CSnet 主要技术特点:TCP/IP协议簇形成 浏览器的诞生:1989年,Tim Berners Lee --->第一个web服务器和web客户机(...
2018-07-30 17:04:04
989
原创 【Linux】进程间关系和守护进程
一、进程组 是一个或多个进程的集合,进程组的ID等于组长进程ID 进程组不会随着进程组长的退出而退出,只要有一个进程存在,则该进程组就存在 sleep 100 | sleep 200 | sleep 300 & 他们属于兄弟进程,&表示将进程放在后台运行 ps axj | head -n 1 a:列出当前用户及所有其他进程 ...
2018-07-30 10:55:11
274
原创 【Linux】进程的控制
一、进程的销毁 1.释放资源 2.记账信息 3.将进程状态设置设置成僵尸状态 4.转存储调度 二、进程终止的方法1、正常退出 1. void _exit ( int status) status定义了进程终止状态,父进程通过wait来获取该值 退出码为0正常退出,非0异常退出(8-16位为退出码,退出码在0-255之间)...
2018-07-29 22:54:28
174
原创 【Linux】进程的概念
一、进程的概念程序:代码+数据进程:代码+数据+堆栈+PCB程序:为了完成特定功能的一系列指令的有序集合进程:一个具有一定独立功能的程序在数据集合上的一次动态执行过程 每个进程都有自己的状态 每个进程都有自己的虚拟地址空间 进程是操作系统分配资源的基本单位 组成:进程包含了一个程序执行过程中的所有状态信息 程序的代码 程序处理的数据 ...
2018-07-28 13:17:28
1057
原创 【C++】(初识---缺省参数、引用、内联函数、函数重载等)
一、C/C++关键字 C++98标准下C++共63个关键字、 C99标准下C语言共32个关键字二、命名空间 概念:C++中有很多函数、变量、类的名字都是大量存在于全局命名空间的,为了避免命名冲突和名字污染,使用命名空间对标识符的名称进行本地化。 作用:避免名字污染 定义: namespace N1{ 1.变量 2.函数 3.命名空间(...
2018-07-23 13:07:18
314
原创 【Linux】线程属性
在使用pthread_create函数创建线程时,我们可以在函数参数列表看到pthread_attr_t *attr这一参数,该参数用于设置线程的属性,一般情况下可使用NULL设置线程属性为默认属性。线程属性标识符pthread_attr_t包含在pthread.h头文件中线程属性结构如下:typedef struct{ int deta...
2018-07-21 10:30:04
305
原创 【Linux】gcc -pthread与gcc -lpthread的区别
当我们使用线程包(pthread)内的函数时,直接用gcc编译一定会出现如下的报错信息:[admin@localhost day0720]$ gcc create.c /tmp/ccnWXVkV.o: In function `main':create.c:(.text+0x49): undefined reference to `pthread_create'collect2: ld...
2018-07-21 00:01:38
1793
原创 【C语言】内存分布详解
一、一个C/C++程序占用的内存分为以下几个部分: 栈区(Stack): 由编译器自动分配释放,其操作方式类似于数据结构中的栈,用于存放函数的形参、返回地址、返回数据,局部变量的值等。(函数形参、局部变量、返回地址、返回数据) 堆区(Heap): 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆完全不同,其存储方式类似于...
2018-07-20 13:27:54
2038
原创 【Linux】makefile(Linux项目自动化构建工具)
makefile(Linux项目自动化构建工具)* od -c add.h* 将add.h中所有内容显示出来,可用于查看最后一行有无换行符,有的编译器程序最后一行没有换行符编译不过去* gcc -c main.c -o main.o -I ../include* 头文件不在当前目录下,编译时找不到头文件,编译失败,-I 表示编译时不仅去系统包含的头文件中找,还去I指定的路径...
2018-06-13 17:14:16
678
原创 【Linux】基础操作指令
ls 查看目录下内容:* ls -l 列出详细信息* ls -d 显示目录本身,而不是目录里的内容* ls -a 显示所有文件,包括隐藏文件* pwd 打印当前路径cd 改变当前路径: * cd ~ 返回根目录(~代表家目录)* cd . 当前目录* cd .. 返回上一级目录* cd - 回到...
2018-06-13 17:08:19
317
原创 【数据结构】栈的实现
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Stack.h#pragma once#include&amp;lt;stdio.h&am
2018-06-08 16:46:54
150
原创 【数据结构】静态顺序表的实现
Seqlist.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include <stdio.h>#include<stdlib.h>#include&
2018-06-01 21:54:05
290
原创 【数据结构】单向链表的实现
SList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include &lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;assert.h&gt;typedef int DataType;typedef struct SListNode{ struct SL...
2018-06-01 21:43:28
240
原创 斐波那契数的时间复杂度、空间复杂度详解
斐波那契数:斐波那契数列指的是1、1、2、3、5、8、13、21、······这样一个数列,我们可以发现它后面的一个数是前两个数之和。而在这个数列中的数就被称为斐波那契数。时间复杂度:时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。时间复杂度的O渐进表示:算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,...
2018-05-26 01:00:21
65259
18
原创 数组和指针
一、一维数组的创建类型符 数组名 [常量表达式]: int arr[i]-----arr和i是[]的两个操作数 注意:1.数组在内存中是连续存放的,地址由低到高 2.数组的初始化若只给定部分值,则未赋值部分初始化为0(字符型数组初始化为\0,指针型数组初始化为NULL) 3.若为arr[10]={0}则剩余部分自动给0;若为int arr[0];(数组的定义...
2018-05-25 22:06:27
191
原创 【C语言】strlen函数的模拟实现(三种方法详解)
方法一:count计数器#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;int my_strlen(const char*str) //const修饰只读变量,防止变量被改{ int count = 0; while (*str++)//当*str ='\0'跳出循环,注意*str++ ...
2018-05-25 21:51:42
495
原创 【C语言】深度理解函数---函数的栈帧
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C语言函数是如何调用的呢?初学时我想当然地回答:从调用部分转到函数部分逐句执行,就是那么简单啊,然而你有没有想过···· &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 函数调用前需要做哪些准备工作?函数是如何传参的?传参后又是如何使用的?参数使用完后又是如
2018-05-10 18:21:31
992
1
原创 【C语言】数组相关运算 重点!!!
1.数组名未sizeof内单独放,表示整个数组的大小 如:sizeof(a) 2.&+数组名,表示整个数组的地址 如:&a 3.一维数组,数组名未在sizeof内单独放,且前面无&,降为数组首元素地址,*解引用访问首元素
2018-04-06 11:49:53
264
原创 【C语言】 有关数组的运算整理 重点理解!!!
一维数组int a[] = {1,2,3,4}; printf("%d\n",sizeof(a)) ; //16 sizeof+数组名表示整个数组的大小printf("%d\n",sizeof(a+0)); //4 首元素地址printf("%d\n",sizeof(*a)); //4 首元素地址解引用=首元素printf("%d\n",sizeof(a+1)); //4pr...
2018-04-05 15:21:32
437
原创 【C语言】 数组知识点整理
一、一维数组(一)一维数组的创建eg:int a [10 ];int为所创建数组的类型,a为数组名,[ ]内为数组的大小,必须是一个常量或常量表达式且不能为0(二)一维数组的初始化以下几种格式均可int arr1[10] = {1,2,3};int arr2[] = {1,2,3,4};int arr3[5] = {1,2,3,4,5};char arr4[3...
2018-04-05 14:49:29
865
原创 【小练习】5位运动员参加了10米台跳水比赛···,请编程确定比赛的名次。
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。...
2018-04-05 12:31:36
347
原创 【小练习】写一个函数返回参数二进制中1的个数(三种方法)
方法一:用除2余1的方法判断1的个数方法二:按位与运算二进制中的每一位和1进行与运算,判断是否为1 方法三:用n和n-1进行与运算 ...
2018-04-05 11:13:28
180
原创 【小练习】求Sn = a + aa + aaa + aaaa + aaaaa的前五项和
#include<stdio.h>#include<stdlib.h>int main(){ int a = 0, i=0, Sn = 0,tmp=0; scanf_s("%d", &a); tmp = a; Sn = 2; for (i = 0; i <4; i++) { a = a * 10 + tmp; Sn = Sn...
2018-03-31 01:14:02
349
原创 【小练习】接收键盘字符,进行大小写转换
接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
2018-03-31 00:45:42
349
原创 【C语言】猜数字游戏
#include<stdio.h>#include<stdlib.h>#include <time.h>void menu(){ printf("*****************************\n"); printf("***1.开始游戏***0.退出游戏***\n"); printf("***********************...
2018-03-31 00:05:35
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人