节点定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
enum color_t {RED,BLACK};

typedef int Type;

typedef struct RBTreeNode{
struct RBTreeNode *left;
struct RBTreeNode *right;
struct RBTreeNode *parent;
enum color_t color;
Type key;
}Node;

//根节点
typedef struct RBRoot{
Node* root;
Node *nil;//叶子(空指针)
}rb_root;

插入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//插入与AVL树完全相同,最后调整即可
//新插入指针初始化颜色为红色
void rb_insert(rb_root* T,Node* z){
Node* y=T->nil;
Node* x=T->root;
while(x!=T->nil){
y=x;
if(x->key<z->key){
x=x->right;
}else x=x->left;
}
z->parent=y;
if(y==T->nil) T->root=z;
else if(z->key<y->key) y->left=z;
else y->right=z;
z->left=z->right=T->nil;
z->color=RED;
rb_insert_fix(T,z); //修正红黑树
}
//创建新节点
void rb_insert_type(rb_root* T,Type key){
Node *p=(Node*)malloc(sizeof(Node));
p->color=RED;
p->key=key;
p->left=p->right=p->parent=T->nil;
rb_insert(T,p);
}

插入修正函数

阅读全文 »

程序开始与注释

1
#!/bin/bash

变量

shell变量

shell变量没有数据类型,都是字符串,即使数值也是字符串

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#列出文件系统的整体磁盘空间情况
df[选项][文件名]
-h:--human-readable
#显示每个文件和目录的磁盘使用情况
du[选项][文件名]
du --max-depth=0 /
#<重定向输入 >重定向输出 >> 添加输出 2>错误重定向输出 &>错误和信息重定向输出
cat >file1<file2
./main text1.txt >text5.txt 2>&1
#显示前几行
head -n 10 main.cc
#显示文件后几行
tail -n 10 main.cc
#汉字编码转换
iconv -f utf-8 -t gb2312 hanzi>hanzi1
#搜索文件内容
grep
#管道查询程序
#将a.txt中的aa替换为bb输出到b.txt
cat a.txt|sed 's/aa/bb'>b.txt
0%