Code:
/*
* tab.h
*
* Created on: 21.11.2010
* Author: Martin
*/
#ifndef TAB_H_
#define TAB_H_
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
// column is item of list of names of columns
// Column *next - pointer on next item in list
typedef struct Column {
char name[10];
struct Column *next;
//struct Column *previous;
} column;
// item of row, items in row complete list
typedef struct Item {
int value;
//struct Column *itemof;
struct Item *next;
} item;
// row is pointer on list of items
typedef struct Row {
item *first_item;
//struct Column *itemof;
struct Row *next;
} row;
// tab is "pointer" on head row inculde count of columns and names of them
typedef struct Tab {
char name[10];
int columns_count;
int rows_count;
column *first_col_name;
struct Tab *next;
row *first_row;
row *spec_iter_row;
//struct List *previous;
} tab;
void print_row(tab *which_from, row *for_print);
column *create_list_of_names(char *column_names);
tab *create_tab(char *name, char *column_names);
int *create_row(int values[], char tab_name[]);
int delete_row(tab *tab_temp,row *for_delete);
void delete_all_rows(char tab_name[]);
void delete_from(char tab_name[], char column_name[], int value);
void delete_tab(char tab_name[]);
int delete_all(char passwd[]);
tab *find_tab(char tab_name[]);
row *find_value(char tab_name[], char column_name[], int value, int ctr);
void select_from(char tab_name[], char column_name[], int value);
void print_all(char tab_name[]);
//void add_item(item **head, char *name, int age);
extern int tab_count;
extern tab *first_tab;
extern tab *last_tab;
#endif /* TAB_H_ */