AfanasevGad7

This is a task for our favourite professor
git clone git://git.stellar-nexus.ru/AfanasevGad7
Log | Files | Refs

commit 4e8a95db7d07715e3b7b61d0c72a48945bcc8bc0
parent 9d429e8bcb81ce02fee8e911d1bf875858d573e7
Author: Plat <plat@stellar-nexus.ru>
Date:   Wed,  5 Nov 2025 18:57:24 +0000

Changed library layout

Diffstat:
Dlibs/libtree/rb.h | 8--------
Dlibs/libtree/tree.h | 16----------------
Rlibs/libutil/ealloc.c -> libutil/ealloc.c | 0
Rlibs/libutil/eprintf.c -> libutil/eprintf.c | 0
Mrb.c | 5++---
Atree.h | 24++++++++++++++++++++++++
6 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/libs/libtree/rb.h b/libs/libtree/rb.h @@ -1,8 +0,0 @@ -#define BLACK 0 -#define RED 1 - -#define FCOLOR(n) (((n)->val) & 1) -#define COLOR(n) ((n) && FCOLOR(n)) -#define SET_COLOR(n,c) ((n)->val = (((n)->val) & ~1) | ((c) & 1)) -#define VALUE(n) ((n)->val >> 1) -#define SET_VALUE(n,v) ((n)->val = ((v)<<1) | (((n)->val) & 1)) diff --git a/libs/libtree/tree.h b/libs/libtree/tree.h @@ -1,16 +0,0 @@ -typedef struct Node { - int val; - struct Node *left, *right; -} Node; - -Node* init(int); -Node* add(int, Node*); -Node* parse_pre(Node*); -Node* parse_post(Node*); -Node* parse_inf(Node*); -int get_height(Node*); -Node* balance(Node*); -Node* balance2(Node*); -Node* left_turn(Node*); -Node* right_turn(Node*); -Node* search(Node*, int); diff --git a/libs/libutil/ealloc.c b/libutil/ealloc.c diff --git a/libs/libutil/eprintf.c b/libutil/eprintf.c diff --git a/rb.c b/rb.c @@ -1,9 +1,8 @@ #include <stdio.h> #include <stdlib.h> -#include "libs/libutil/ealloc.h" -#include "libs/libtree/tree.h" -#include "libs/libtree/rb.h" +#include "util.h" +#include "tree.h" unsigned int steps; diff --git a/tree.h b/tree.h @@ -0,0 +1,24 @@ +#define BLACK 0 +#define RED 1 + +#define FCOLOR(n) (((n)->val) & 1) +#define COLOR(n) ((n) && FCOLOR(n)) +#define SET_COLOR(n,c) ((n)->val = (((n)->val) & ~1) | ((c) & 1)) +#define VALUE(n) ((n)->val >> 1) +#define SET_VALUE(n,v) ((n)->val = ((v)<<1) | (((n)->val) & 1)) + +typedef struct Node { + int val; + struct Node *left, *right; +} Node; + +Node* init(int); +Node* add(int, Node*); +Node* parse_pre(Node*); +Node* parse_post(Node*); +Node* parse_inf(Node*); +int get_height(Node*); +Node* balance(Node*); +Node* left_turn(Node*); +Node* right_turn(Node*); +Node* search(Node*, int);