Slist.c 818 Bytes
#include "Slist.h"

List make_empty_list(){
  return NULL;
}

int is_empty(List l){
  return l==NULL;
}
int isIn_List(List l, char e){
  return !is_empty(l) &&
    (isIn_tree(l.letter,e) ||
     isIn_list(l.next,e));
}


//add
void addHead(List*l,char e){
  cell* tmp=malloc(sizeof(cell));
  tmp->letter=make_tree(e);
  tmp->next=*l;
  *l=tmp;
}
void addNext(List*l,char e){
  if(is_empty(*l))
    addHead(l,e);
  else{
    cell* tmp=malloc(sizeof(cell));
    tmp->letter=make_tree(e);
    tmp->next=*l->next;
    *l=tmp;
}
void addAlpha(List*l,char e){
  if(is_empty(*l) || e<(l->letter->val)){
    addHead(l,e);
    return;
  }
  cell* crt=*l;
  while(!is_empty(crt->next) && e < crt->next->letter->val)
    crt=crt->next;
  if(is_empty(crt->next))
    addHead(&crt->next,e);

  if(e> crt->next-letter->val){
    
}