This commit is contained in:
2023-02-08 11:18:16 +01:00
parent 639fd8c410
commit 7021891e9c
60 changed files with 1218 additions and 0 deletions

44
DEV1.1S/TPPILE/chainee.c Normal file
View 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);
}

View 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
View 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;
}