LOADING

加载过慢请开启缓存 浏览器默认开启

CherryのHome

Here's cherry.....

About cherry

2099/4/21

Hello!My name is cherry blowing and you can also call me cherry.XD

​ 喜欢二次元文化,阅番无数,热衷于剪辑自己喜欢的动漫的视频

​ 游戏:Apex/Osu!/Cs2…….

​ 喜欢数学以及计算机知识,热爱学习自己感兴趣的事物。

阅读全文

简单迷宫(图)

2024/5/18

阅读全文

哈夫曼的平均码长

2024/5/14

阅读全文

二叉排序树

2024/5/12

阅读全文

加分二叉树

2024/5/12

阅读全文

哈夫曼树求WPl

2024/5/11

阅读全文

通过先序和中序求二叉树后序遍历序列

2024/5/10

阅读全文

二叉树

2024/4/28

二叉树的前序、中序、后序、层次、线索、遍历

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct BiNode{
char data;
struct BiNodelchild,rchild;
int ltag,rtag;
}BINODE,BiTree;
BINODE
pre=NULL;
//创建二叉树
void CreateBiTree(BiTree t)
{
char ch;
ch=getchar();
if(ch==’#’) t=NULL;
else
{
t=(BiTree)malloc(sizeof(BINODE));

(t)->data=ch;
(t)->ltag=(t)->rtag=0;
CreateBiTree(&(t)->lchild);

CreateBiTree(&(t)->rchild);
}
}
//先序遍历
void Pre(BiTree T)
{
if(T)
{
printf(“%c”,T->data);
Pre(T->lchild);
Pre(T->rchild);
}
}
//中序遍历
void Mid(BiTree T)
{
if(T)
{
printf(“%c”,T->data);
Mid(T->lchild);
Mid(T->rchild);
}
}
//后序遍历
void Back(BiTree T)
{
if(T)
{
printf(“%c”,T->data);
Back(T->lchild);
Back(T->rchild);
}
}
void level(BiTree T)
{
//用队列
BiTree queue[1000],b;
int beg=0,end=0;
if(T)
{
queue[end++]=T;
while(beg!=end)
{
b=queue[beg++];
printf(“%c”,b->data);
if(b->lchild!=NULL) queue[end++]=b->lchild;
if(b->rchild!=NULL) queue[end++]=b->rchild;
}
}
}
//线索遍历:
//1.以结点p为根的中序线索化
void MidThread(BiTree p)
{
if(p)
{
MidThread(p->lchild);
if(!p->lchild)
{
p->lchild=pre;
p->ltag=1;
}
if(!pre->rchild)
{
pre->rchild=p;
pre->rtag=1;
}
pre=p;
MidThread(p->rchild);
}
}
//将整个二叉树中序线索化
BINIDE
CreateMidThread(BiTree T)
{
BINODE
head;
head=(BINODE
)malloc(szieof(BINODE));
head->rtag=1; //后继
head->rchild=head; //右孩子指向自己
head->ltag=0; //有左孩子
head->lchild=T; //头节点左孩子指向树根
pre=head;
MidThread(t);
pre->rtag=1;
pre->rchild=head;
head->rchild=pre;
return head;
}

//计算二叉树深度

int Depth(BiTree T)

{

if(T==NULL) return 0;

int m,n;

m=Depth(T->lchild);

n=Depth(T->rchild);

if(m>n) return m+1;

else return n+1;

}

int main()
{
BiTree T=NULL;
return 0;
}

阅读全文

awk命令

2024/4/21
符号 含义
$0 表示整行文本
$n 表示文本行中的第n个数据字段
分割多条命令
FNR 当前文件当前记录数
NR 所有文件目前已经处理的输入记录数
数组 其中一种使用方式:用字典的key值来索引,key必须唯一
next 跳过剩下的模式和表达式,直接处理下一个命令行

正则

  • ~包含
  • ~!不包含
正则 awk正则
^ 表示以…开头的行 某一列的开头 $3~/^oldboy/
$ 表示以…开头的列 某一列的结尾 $4~/liaodao$/
^$ 表示空行 某一列是空的
阅读全文

正则表达式和通配符

2024/4/20
  • 通配符
通配符 含义 实例
* 匹配0或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab
匹配任意一个字符 a?b a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b
[list] 匹配list中的任意单一字符 a[xyz]b a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb
[!list]或将’!’改成’^’ 匹配 除list 中的任意单一字符 a[!0-9]b a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b
[c1-c2] 匹配c1-c2中的任意单一字符 a[0-9]b 0与9之间有且只有一个字符,如a0b,a1b。
[!c1-c2] 匹配不在c1-c2的任意字符 a[!0-9]b 如acb adb
  • 正则表达式
字符 含义
^ 以什么开头
$ 以什么结尾
^$ 表示空行
. 任意单个字符 比如a.b ,即a和b直接有任意一个字符
[] 字符范围,如[a-z]
\ 转义字符,恢复字符原来的含义^
* 前面的字符出现0次或多次,比如a*,可以匹配到123a,123aa,123aaa等字符
.* 任意字符出现了任意次
[c1-c2] 匹配c1-c2中的任意单一字符
+ 匹配前一个字符1次或多次(注意与*区分开)
[:/]+ 匹配括号内的字符”:”或者”/“ 1次或多次
匹配前1个字符0次或1次
|
() \n 1个整体 abc123 —–> (abc) (123) —-> \2\1 ( \2表示引用第二个小括号的内容,\1表示引用第一个小括号的内容)
a{n,m} a这个字符最少出现n次,最多出现m次
a{n,} a这个字符最少出现n次,最多不限
a{,m} a这个字符最少出现0次,最多出现m次
  1. 如何表示0到9数字?

    1
    2
    3
    [0-9]
    ##或者
    [:digit:]
  2. 如何表示英文字母?

    1
    2
    3
    [a-zA-Z]
    ##或者
    [:alpha:]
  3. 如何表示“13”头的手机号码?

    1
    13[0-9]{9}
  4. 如何表示电子邮箱地址?

    1
    [a-zA-Z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,3}

5.假设我们要搜索美国的社会安全号,格式是999-99-9999,对应的正则表达式

1
[0-9]{3}\-[0-9]{2}\-[0-9]{4}

如果要查找一个文件中“a.txt”的所有邮箱

1
grep -oE '[a-zA-Z0-9._]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,3}' a.txt
阅读全文
1
avatar
Cherryblowing

Description
重点大学在读计算机本科生(目前大一),二次元+死宅,兴趣爱好广泛