vgsfjij
This commit is contained in:
44
DEV1.1S/TPPILE/chainee.c
Normal file
44
DEV1.1S/TPPILE/chainee.c
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct maillon_ {
|
||||
char c;
|
||||
struct maillon_* prev;
|
||||
};
|
||||
|
||||
typedef struct maillon_ maillon;
|
||||
typedef maillon* pile;
|
||||
|
||||
void push(pile* p, char c) {
|
||||
maillon* m = calloc(1, sizeof(maillon));
|
||||
m->c = c;
|
||||
m->prev = *p;
|
||||
|
||||
*p = m;
|
||||
}
|
||||
|
||||
char pop(pile* p) {
|
||||
char c = (*p)->c;
|
||||
*p = (*p)->prev;
|
||||
return c;
|
||||
}
|
||||
|
||||
int empty(pile p) {
|
||||
return p == NULL;
|
||||
}
|
||||
|
||||
char top(pile p) {
|
||||
return p->c;
|
||||
}
|
||||
|
||||
void clear(pile* p) {
|
||||
*p = NULL;
|
||||
}
|
||||
|
||||
pile create() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void destroy(pile* p) {
|
||||
free(p);
|
||||
}
|
||||
47
DEV1.1S/TPPILE/chainee_tables.c
Normal file
47
DEV1.1S/TPPILE/chainee_tables.c
Normal file
@@ -0,0 +1,47 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct pile_ {
|
||||
char* tab;
|
||||
int size;
|
||||
};
|
||||
|
||||
typedef struct pile_ pile;
|
||||
|
||||
void push(pile* p, char c) {
|
||||
(p->tab)[p->size] = c;
|
||||
p->size++;
|
||||
p->tab = realloc(p->tab, (p->size)+1);
|
||||
}
|
||||
|
||||
char pop(pile* p) {
|
||||
char c = (p->tab)[p->size-1];
|
||||
p->size--;
|
||||
p->tab = realloc(p->tab, (p->size)+1);
|
||||
return c;
|
||||
}
|
||||
|
||||
int empty(pile p) {
|
||||
return p.size == 0;
|
||||
}
|
||||
|
||||
char top(pile p) {
|
||||
return (p.tab)[(p.size) - 1];
|
||||
}
|
||||
|
||||
void clear(pile* p) {
|
||||
free(p->tab);
|
||||
p->tab = calloc(1, sizeof(int));
|
||||
p->size = 0;
|
||||
}
|
||||
|
||||
pile create() {
|
||||
pile* p = (calloc(1, sizeof(pile)));
|
||||
p->tab = calloc(1, sizeof(char));
|
||||
p->size = 0;
|
||||
return *p;
|
||||
}
|
||||
|
||||
pile destroy(pile* p) {
|
||||
free(p);
|
||||
}
|
||||
34
DEV1.1S/TPPILE/file.c
Normal file
34
DEV1.1S/TPPILE/file.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct maillon_ {
|
||||
char c;
|
||||
struct maillon_* next;
|
||||
};
|
||||
|
||||
typedef struct maillon_ maillon;
|
||||
typedef maillon* file;
|
||||
|
||||
void push(file* f, char c) {
|
||||
maillon* m = calloc(1, sizeof(maillon));
|
||||
m->c = c;
|
||||
|
||||
if (*f == NULL) {
|
||||
*f = m;
|
||||
} else {
|
||||
file* start = f;
|
||||
file ff = *f;
|
||||
while (ff->next != NULL) ff = ff->next;
|
||||
ff->next = m;
|
||||
f = start;
|
||||
}
|
||||
}
|
||||
|
||||
char pop(file* f) {
|
||||
char c = (*f)->c;
|
||||
*f = (*f)->next;
|
||||
}
|
||||
|
||||
int empty(file f) {
|
||||
return f == NULL;
|
||||
}
|
||||
Reference in New Issue
Block a user