自定义博客皮肤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)
  • 收藏
  • 关注

原创 双向链表(非循环)

1、头文件(dilst.h)#pragma once//带头结点的双向链表(非循环)typedef struct DNode{ int data;//数据域 struct DNode *next;//后继指针 struct DNode *prio;//前驱指针}DNode,*DList;//初始化双向链表void InitDList(DList plist);//头插

2017-10-30 09:18:05 2306

原创 Linux中关于fork()复制进程

fork()复制进程1、fork()的基本概念一个现有进程可以用fork()函数通过系统调用创建一个新进程,该函数定义如下:#include pid_t fork(void);// 返回:若成功则在子进程中返回0,在父进程中返回子进程PID,若出错则返回-1因此,可以通过返回值知道当前进程是父进程还是子进程。2、fork调用的一个奇妙之处就是它仅仅被调用一次,却

2017-10-29 08:27:50 693

原创 在顺序表A中删除B、C中重复的元素

例题:已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:题中没有特别指明同一表中的元素值各不相同)#include #include #include //不定长顺序表,自动增长#define INITSIZE 10typedef struct DS

2017-10-26 11:51:49 4753

原创 单链表的合并

例题:假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。#include #include #include typedef struct Node{ int data;//保存数据 struct Node

2017-10-26 11:33:23 874

原创 两个顺序表比较大小

例题:设A和均为顺序表,A'和B'分别为和中除去最大共同前缀后的子表。若A'=B'=空表,则A=B;若A'=空表,而B'!=空表,或者两者均不为空表,且A'的首元小于B'的首元,则A否则A>B。试写一个比较A,B大小的算法。#include #include #include //不定长顺序表,自动增长#define INITSIZE 10typedef stru

2017-10-26 11:14:28 4311

原创 将x插入到顺序表中保持顺序表的递增有序

例题:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。#include #include #include #include "dseqlist.h"//不定长顺序表,自动增长#define INITSIZE 10typedef struct DSeqList{ int *elem;//指向存放数据的动态数组 int le

2017-10-26 11:12:37 8358

原创 顺序表的逆置

例题:试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,……an)逆置为(an,……a1)。#include #include#include#define INITSIZE 10typedef struct DSeqList{ int *elem;//指向存放数据的动态数组 int length;//有效数据个数 int listsize;//总容量

2017-10-25 15:23:20 1021

原创 main函数的三个参数

main函数的三个参数每一个C程序都有一个main()函数。在Linux系统上:#include#include#include#include#includeint main(int argc,char* argv[],char* envp[]) { int i = 0; printf("argc=%d\n",argc); for(;i

2017-10-24 10:51:16 580

原创 Linux中静态库和共享库的区别

Linux中静态库和共享库的区别 在上一篇博客中写到了在Linux中静态库和共享库的做法,那么这篇博文就来给大家简单分享一下静态库和共享库的区别。  1、静态库        (1)如果主机上没有libfoo.a,那么main程序能不能执行?     答:可以执行。因为main程序中已经有add方法(函数)了。(2)如果libfoo.

2017-10-24 10:43:01 833

原创 单向循环链表的基本操作

单向循环链表的基本操作1、头文件(clist.h)#pragma once//循环链表typedef struct CNode{ int data; struct CNode *next;}CNode,*CList;//循环链表初始化void InitList(CList plist);//头插bool Insert_head(CList plist,

2017-10-23 10:27:52 485

原创 回文问题

回文问题1、什么是回文?答:如果是一个字符串的话,从左到右读和从右到左读是完全一样的,例如:”aaabaaa”,”level”等;   如果是一个数字的话,就是:1234321等等类似这样的。 回文字符串:首先来判断一个字符串是否是回文字符串。//判断是否是回文字符串bool IscircleString(char *str,int len){ char *tmp

2017-10-22 10:34:17 495

原创 C/C++中预编译(预处理)、编译、汇编、链接

C/C++中预编译(预处理)、编译、汇编、链接一、预编译读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理作用:处理关于 “#” 的指令(1)删除#define,展开所有宏定义。例#define portnumber 3333(2)处理条件预编译 #if, #ifdef, #if, #elif,#endif(3)处理“#inclu

2017-10-21 18:13:19 533

原创 gcc中预编译(预处理)、编译、汇编、链接

gcc中预编译、编译、汇编、链接 一、预编译操作步骤:gcc -E test.c -o test.i作用:处理关于 “#” 的指令(1)删除#define,展开所有宏定义。例#define portnumber 3333(2)处理条件预编译 #if, #ifdef, #if, #elif,#endif(3)处理“#include”预编译指令,将包含的“.h”文件插入对应

2017-10-21 17:23:09 825

原创 Linux中静态库和共享库的制作方法

Linux中静态库和共享库的做法 1、什么是库:预先编译好的函数(方法)的集合。2、静态库:libxxx.a  xxx:代表库的名字3、共享库:libxxx.so4、一些文件所在的位置:程序、命令:/usr/bin   /bin头文件:/usr/include库文件:/usr/lib     /lib 静态库的做法:1、命令:ar crv libxxx.

2017-10-21 16:35:21 314

原创 Linux中gdb调试的一些简单命令

Linux中JDB调试的一些简单命令调试:需要的工具:gdb  具有调试信息,才能调试,编译时加上 -g参数,是程序具有调试信息。开始调试:gdb main         main是要调试的程序,由gccmain.c -g -omain生成。进入后提示符变为(gdb) 。1、(gdb) l:显示代码,如果没有全部显示就继续按回车。            代码会进行行号提示。2、(gdb) b行号...

2017-10-21 16:14:10 483

原创 单链表的基本操作

单链表的基本操作1、头文件(list.h)#pragma once//带头节点的单链表,尾节点的next为NULL//头节点起哨兵位作用,它不使用(数据域不能存储数据)typedef struct Node{ int data;//保存数据 struct Node *next;//保存下一节点的地址}Node,*List;//List == Node*//t

2017-10-19 19:07:52 294

原创 系统运行级别

运行级别 1、runlevel:查看运行级别2、/etc/inittab:运行级别所存储的文件路径3、运行级别:0 halt:关机             1:单用户模式             2:多用户、无网络服务             3:完全的多用户、在字符界面             4:未定义、自定义             5:图形化界面  

2017-10-17 10:34:28 342

原创 两数相乘选择进制问题

例题:假设在n进制下,下面的等式成立,567*456=150216,n的值是:A 9  B 10C 12D 18解答:假设n进制,则有以下等式成立:(5*n^2+6*n^1+7*n^0)*(4*n^2+5*n^1+6*n^0)=1*n^5=5*n^4+0*n^3+2*n^2+1*n^1+6*n^0简化以后得到:15*n^4+49*n^3+86*n^2+70*n=n^5

2017-10-14 20:37:42 473

原创 Linux中的命令

1、grep:在一个字符集合中找到符合条件的行输出,也就是可以起到一个过滤的作用。用法:grep“root” password在passwd文件中查找root      grep hello file在file文件中查找hello2、find:在系统中查找一个文件用法:find路径 -name 文件名      find /home -name file

2017-10-14 19:44:41 178

原创 Linux中对进程的操作

对进程的一些操作进程:正在运行中的程序进程的状态:就绪、运行、阻塞1、ps:显示当前终端中运行的进程           ps -e:显示所有进程           ps -f:显示进程的详细信息           ps -ef:显示所有进程的详细信息2、kill  PID(进程编号):结束一个进程           kill

2017-10-11 19:01:02 248

原创 Linux中文件的权限及文本编辑

一、文件的权限r:读     4w:写    2x:执行  1-:无      0rw- rw- r--chmod:1、文字设定法:chmod

2017-10-11 17:46:12 691

原创 不定长顺序表的基本操作

不定长顺序表1、头文件(dseqlist.h)#pragma once//防止头文件重复引用//不定长顺序表,自动增长#define INITSIZE 10typedef struct DSeqList{ int *elem;//指向存放数据的动态数组 int length;//有效数据个数 int listsize;//总容量,总格子数}DSeqL

2017-10-03 11:01:44 474

原创 定长的顺序表及基本操作

自带解引用的符号:->、[]#pragma once //防止头文件被重复引用//固定长度的顺序表#define SIZE 10 //顺序表的长度typedef struct SeqList{ int elem[SIZE];//存放数据的数组 int length;//有效数据的个数}SeqList,*PSeqList;1、初始化顺序表v

2017-10-01 20:57:22 465

原创 判断矩阵是否为单位矩阵

判断矩阵是否为单位矩阵单位矩阵:除了主对角线上的元素值为1,其余元素全部为0bool identity_matrix(int *arr,int n)//n表示n阶矩阵{ for(int i=0;i < n;i++) { for(int j = 0;j < n;j++) { if(i == j && *(arr+i*n+j) != 1)//用一维数组越界到下一行表

2017-10-01 12:23:20 5302

原创 数组冒泡排序和字符串冒泡排序

数组冒泡排序void BubbleSort(int *arr,int len){ int tmp; for(int i=0;i<len-1;i++) { for(int j=0;j<len-1-i;j++) { if(arr[j] > arr[j+1]) { tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1]

2017-10-01 09:38:56 440

原创 约瑟夫环

例题:有n个人围成一圈,报3的退出,问剩下的一个人的序号是多少?int Circle(int n)//约瑟夫环{ int *arr = (int *)malloc(n*sizeof(int)); int i; for(i=0;i<n;i++) { arr[i] = 1; } int count = n; //存活的人数 int times = 0;//报的数字 i = 0

2017-10-01 09:33:03 201

原创 深拷贝与浅拷贝

深拷贝与浅拷贝浅拷贝:多个指针指向同一段内存(生活中的共享)              字符串常量就是浅拷贝              特点:不能修改#include//浅拷贝int main(){ char buf[100]; char *str[3];//指针数组 int i; for(i = 0;i < 3;i++) { scanf("%

2017-10-01 08:41:04 195

空空如也

空空如也

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

TA关注的人

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