自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程

一、线程的概念        线程,有时被称为轻量级进程(LWP),是程序执行的最小单元。一个标准的线程由线程ID,当前指针(PC),寄存器集合和堆栈组成。另外,线程是一个进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程可以并行...

2018-04-29 19:45:03 219

原创 动态内存的开辟

一、malloc的使用1> malloc全称是memory allocation,中文叫动态内存分配,用于申请一块连续大小的内存区域以void类型返回分配内存的区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存 。2> void*类型表示未确定类型的指针。c和c++规定,void*类型可以通过类型的转换强制转换为任何类型的指针。3> 一般需和...

2018-04-29 09:42:57 115

原创 C语言模拟练习(11)----递归

程序代码:#include<stdio.h>//1.递归实现求第n个feibonaq数int fib(int n){ if(n>0){ if(n==1 ||n==2){ return 1; } return fib(n-1)+fib(n-2); }}//2.非递归实现求第n个feibonaq数int fib1(int n){ int arr[n]; arr[0]=arr...

2018-04-28 18:08:29 170

原创 二叉树的基本操作<2>

////根据先序遍历结果构造一棵树--“abd###c##”TreeNode* CreatTree(TreeNodeType cur[],size_t *index,size_t size,TreeNodeType null_value){ if(*index == size){ exit(0); } if(cur[*index] == null_value){ return NULL; } ...

2018-04-28 13:19:19 164

原创 二叉树的基本操作&lt;1&gt;-----四种遍历

//二叉树的操作实现#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;string.h&gt;typedef char TreeNodeType;//二叉树结点结构体typedef struct TreeNode{ TreeNodeType data; struct TreeNode* lchild; struct TreeNod...

2018-04-28 13:12:38 148

原创 信号的知识点总结

一、信号的基本概念为了更加清晰的了解信号,那么就拿我们最熟悉的场景切入:1&gt;用户输入命令,在shell下启动一个前台进程。2&gt;用户按下ctrl-c,这个键盘输入就是一个硬件中断。3&gt;如果Cpu当前正在执行这个代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。4&gt;终端驱动将Ctrl-C解释成一个SIGINT信号,,记在该进程的PCB中(也可以说发送...

2018-04-26 23:39:28 647

原创 C语言模拟练习(10)

1.写冒泡排序可以排序多个字符串。#include&lt;stdio.h&gt;void bubble_sort(char *arr[],int sz){ int i=0; int j = 0; for (i = 0; i &lt; sz - 1; i++) { for (j = 0; j &lt; sz - 1 - i; j++) { if (strcmp(*(arr+j),*(arr+...

2018-04-26 20:03:49 209

原创 C语言模拟练习(9)

1.实现strcpy#include&lt;stdio.h&gt;char * my_strcpy(char * dest, char *src){ char *ret = dest; while (*dest++ = *src++) { ; } return ret;}int main(){ char arr1[] = "abcd"; char arr2[10]; printf("%s\n",...

2018-04-26 19:42:25 184

原创 C语言模拟练习(8)

1.编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2550136832...

2018-04-26 19:36:11 251

原创 C语言模拟练习(7)

1.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。#include&lt;stdio.h&gt;void find(int *arr, int sz)  //查找只出现一次的数字{ int i = 0; int j = 0; for (i = 0; i &lt; sz; i++) { int k = 0;    for (j = 0; j &lt; sz...

2018-04-26 19:30:24 158

原创 进程通信------管道

什么是管道1&gt;管道是UNIX中最古老的进程通信的形式。2&gt;一个进程连接到另一个进程的一个数据流(称为一个“管道”)。常见管道实例:who | wc -l匿名管道#include&lt;unistd.h&gt;功能:创建一个无名管道原型:int pipe(int fd[2]);参数:fd:文件描述符数组,其中fd[0]表示读端,fd[1]表示写端。返回值:成功返回0,失败返回错误代码注:...

2018-04-26 00:01:49 491

原创 C语言模拟练习(6)

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//1&gt; 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,//输入9,输出9*9口诀表,输入11,输出11*11的乘法口诀表。void print_multipilication_table(int value){ int i = 1; printf("%d*%d乘法表:\n",...

2018-04-22 16:59:32 737

原创 死锁知识点总结

一、什么是死锁        学习操作系统,死锁是一个关键的知识点,接下来,我们先用几个小列子让我们更加清晰的认识死锁,例1:进程P为对象A加锁以便对其独占使用,并继续请求对象B;进程Q已经为对象B加锁,当进程Q继续请求对象A时将发生死锁。例2:哲学家就餐问题,五个(男性)哲学家以思考和用餐的方式生活。他们围坐在有五张椅子的一个圆桌边,每一个哲学家有一张椅子。在桌子中央有一碗意大利面条,桌子上还有...

2018-04-22 13:25:20 385

原创 迷宫的四重求解

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#define ROW 6#define COL 6//Round1《使用递归的方法》typedef struct maze1{ int maze[ROW][COL];}Maze;//结点的建立typedef struct node{ int row; int col;}Node;//顺序栈的建...

2018-04-17 21:42:24 130

原创 栈和队列的操纵

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//最小栈(俩种方法)#define queueMax 100//#define NodeType int          //符合其他题#define NodeType char           //符合匹配题typedef struct queue{ int data[queueMax...

2018-04-15 22:52:51 125

原创 文件的操作与动态(静态)库的打包

一、文件的操作:(open、read、write、close)程序代码:1)读文件[chaiyandong@localhost linux_work]$ cat read.c//读文件#include&lt;stdio.h&gt;#include&lt;string.h&gt;//主函数int main(){ FILE* fp = fopen("myfile","r"); if(!fp){ pr...

2018-04-15 12:23:00 326

原创 C语言模拟练习(5)

程序代码:#include&lt;stdio.h&gt;//写一个函数返回函数二进制中1的个数//比如:15 0000 1111 4个1//程序原型//int count_one_bits(unsigned int value){// 返回1的个数//}//int count_one_bits(unsigned int value){ int i = 0; int arr[32]={0}; int...

2018-04-15 09:49:42 124

原创 C语言的模拟练习(4)

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//完成猜数字游戏void chaishuzi(){ srand((unsigned int)time(NULL)); int value = 0; int key; int sta = 0; key = rand()%100;    //使用rand之前,一定要声明srand; while(v...

2018-04-13 16:14:09 127

原创 C语言的模拟练习(3)

程序代码:#include&lt;stdio.h&gt;//在屏幕上输出以下图案/*    *  * * * * * * * *  * * *    **/void myprint(int n,char value){ int i = 0; int j = 0; char emp = ' '; for(;i&lt;n;i++){ for(j=n-1-i;j&gt;0;j--){ printf...

2018-04-11 13:55:13 157

原创 C语言初学的模拟练习(2)

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;math.h&gt;//将数组A中到内容和数组B中的内容进行交换void swap(int* arr1,int* arr2,int size){ int i = 0; for(;i&lt;size;i++){ int tmp = arr1[i]; arr1[i] = ...

2018-04-09 12:34:24 129

原创 C语言初学的模拟练习(1)

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//程序函数到实现//给定俩个整形变量的值,将俩个值的内容进行交换void swap(int* p1,int* p2){ int tmp = *p1; *p1 = *p2; *p2 = tmp;}//不允许创建临时变量,交换俩个数到内容void swap1(int* p1,int* p2){ *...

2018-04-09 10:36:44 173

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

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//#define SeqMax 1000#define SeqType chartypedef struct Node{ SeqType data; struct Node* next;}SeqNode;typedef struct link{ SeqNode* head; SeqNode* ...

2018-04-08 16:15:16 281

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

程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#define SeqQueueType char#define SeqQueueMax 1000typedef struct Queue{ SeqQueueType data[SeqQueueMax]; size_t head; size_t tail; size_t size;} SeqQu...

2018-04-07 21:00:51 351

原创 栈的基本操作

本次程序是以实现栈的基本操作为目的(主要包括栈的初始化、入栈、出栈、取栈顶元素和销毁栈):程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#define SeqStackType char#define SeqMax 1000typedef struct{ SeqStackType data[SeqMax]; size_t size;}Seq...

2018-04-07 11:20:34 153

原创 带头结点双向链表的操作(2)

        此次代码为对带头结点双向链表部分操作的函数实现:程序代码://对带头结点双向链表进行按元素删除void DLinklistErase(DLinkNode** head,DLinkType value){ DLinkNode * cur = (*head)-&gt;next; while(cur-&gt;data!=value&amp;&amp;cur!=(*head)){ cur...

2018-04-06 15:56:59 308

原创 带头结点的双向链表(1)

本次程序是 关于带头结点双链表的基本操作(插入、删除、查找):程序代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;typedef char DLinkType; //定义参数类型typedef struct DLinkNode { //定义结点 DLinkType data;  struct DLinkNode* next;  struct DL...

2018-04-06 14:54:06 650

原创 链表的操作(2)

        此次程序是链表操作中的几个函数的实现,包括(判断俩链表的相交、求俩链表的交集、拷贝复杂链表)1、判断俩个链表是否相交,但是链表可能带环程序代码:int HasCrossWithCycle(LinkNode* head1,LinkNode* head2){ if(head1-&gt;next==NULL||head2-&gt;next==NULL){ return 0; } Lin...

2018-04-06 12:02:17 252

空空如也

空空如也

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

TA关注的人

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