自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程控制_读者写者问题

//信号量结构体 struct semaphore { int count;//消耗资源 PCB* queue;//等待在信号量上的进程 }; //信号量的两种操作 P(semaphore &s) { s.count--; if(s.count<0) { //1、阻塞该进程; //2、将该进程插入等待队列s.queue; } } V(semaphore &s) { s.count++; if(s.count<=0)//value=0,生产资源前value.

2020-11-01 15:14:44 522

原创 字符串匹配

'''KMP算法''' //模式串匹配 ////比较指针前面是匹配的 ////求其最长公共前后缀 ////模式串移动到后缀所在的位置得到上下匹配 //求解next数组 next[j] = t //j = t, next[j+1] = t+1 = next[j]+1 //j != t, void getNext(Str substr, int next[]) { int j = 1, t; next[1] = 0;//数组第一位的特殊标记 while(j < substr.length)//.

2020-10-23 16:51:24 105

原创 字符串

typedef struct Str { char *ch; int length; }Str; '''赋值''' int strAssign(Str& str, char* ch) { if(str.ch) //是否指向一片存储空间 free(str.ch); int len = 0; char *c = ch; while(*c) { ++len; //将要保存的串的长度 ++c; //连续存储空间的首地址一直循环到/0 } i..

2020-10-23 16:50:46 136

原创 栈和队列 括号匹配和函数求值

//括号匹配 int isMatched(char left, char right) { if (left == '(' && right == ')') return 1; else if (left == '[' && right == ']') return 1; else if (left == '{' && right == '}') return 1; else return 0; } int isBrackletsBa.

2020-10-23 16:43:57 114

原创 栈和队列 前缀后缀中缀表达式求值

//后缀表达式求值 //从前往后扫描 float calPostfix(char exp[]) { float s[maxSize]; int top = -1; for (int i = 0; exp[i] != '\0'; i++) { if ('0' < exp[i] && exp[i] > '9') s[++top] = exp[i] - '0'; else { int flag; float opand1, opand2, resu.

2020-10-23 11:27:58 192

原创 栈和队列 中缀后缀前缀表达式转换

//表达式转换 //中缀转后缀 //从左往右扫描,从表达式前面开始扫描 //左括号入栈,右括号一直出栈,碰到右括号停下来 //栈顶运算符小于等于扫描到的运算符则出栈,写入表达式 void infixToPostfix(char infix[], char s2[], int &top2) { char s1[maxSize]; int top1 = -1;//s1辅助栈,s2是结果栈 int i = 0; while(infix[i] != '\0') { if('0' <= .

2020-10-22 20:18:45 204

原创 树 已知遍历序列确定二叉树

//根据遍历序列确定二叉树 typedef struct BTNode { int data; struct BTNode* lChild; struct BTNode* rChild; }BTNode; //已知先序和中序遍历序列确定二叉树 BTNode *CreateBT(char pre[], char in[], int L1, int R1, int L2, int R2) '''pre[],in[]存入确定遍历序列, L1, R1为数组pre[]的操作范围, L2, R2为数组in[.

2020-10-21 15:45:33 244

原创 树 遍历

//二叉树深度优先遍历 //先序中序后序 //根据访问时机:第一次到先序,第二次到中序,第三次到后序 //先序:根节点-左子树-右子树 //中序:中序左子树-根节点-中序右子树 //后序:后序左子树-后序右子树-根节点 //树的深度优先遍历 //根据访问时机:首次访问先序,最后一次访问后序 //先序:根节点,先序所有子树 //后序:后序所有子树,根节点 //树转换成二叉树,先序相同,二叉树中序等效于树的后序 //森林转换二叉树相同 //二叉树遍历 //二叉树深度优先遍历 //递归实现,系统栈保护现.

2020-10-20 17:38:31 119

原创 树 二叉树线索化

//线索二叉树存储结构 typedef struct TBTNode { int data; int lTag; int rTag; TBTNode* lChild; TBTNode* rChild; }TBTNode; //中序线索化 //pre指向p的前驱结点,对比二叉树遍历的代码 void inThread(TBTNode *p, TBTNode *&pre) { if (p != NULL) { inThread(p->lChild, pre); if (p-.

2020-10-20 17:33:30 80

空空如也

空空如也

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

TA关注的人

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