Language: C

#include <stdio.h>
#include <stdlib.h>

typedef struct {
  int key;
  struct Node *pre,*next;
}Node;

Node *nil;

void print(){
  Node *a=nil->next;
  int i=1;
  
  while(1){
    if(a==nil) break;
    if(i>0)printf(" ");
    printf("%d",a->next);
    a=a->next;
  }
  printf("\n");
}

void renketu(){
  nil=(Node *)malloc(sizeof(Node));
  nil->pre=nil;
  nil->next=nil;
}

void insert(int key){
  Node *a=(Node *)malloc(sizeof(Node));
  
  a->key=key;
  a->pre=nil->next;
  nil->next->pre=a;
  nil->next=a;
  a->pre=nil;
}

 Node search(int key){
 Node *ser=nil->next;
 
  while(nil!=ser && ser->key!=key){
    ser=ser->next;
  }
  return ser;
}

void delete(Node *a){
  if(a==nil) return;
  a->pre->next=a->next;
  a->next=t->pre;
  free(a);
}

void fdelet(){
  delete(nil->next);
}

void ldelete(){
  delete(nil->pre);
}

void keydelete(int key){
  delete(search(key));
}

int main(){
  int i,n,key;
  char a[20];

  scanf("%d",&n);
  
  renketu();

  for(i=0;i<n;i++){
    scanf("%s%d",a,&key);
      if(a[0]=='i'){ insert(key);
      }else if(a[0]=='d'){
	if(a[6]=='F'){ fdelete();
	} else if(a[6]=='L'){ ldelete();
	} else {
	  keydelete(key);
	}
      }
  }
  
  print();

  return 0;
 
  
}

Compiler output:
main.c: In function 'print':
main.c:12:11: error: initialization of 'Node *' from incompatible pointer type 'struct Node *' [-Wincompatible-pointer-types]
   12 |   Node *a=nil->next;
      |           ^~~
main.c:19:6: error: assignment to 'Node *' from incompatible pointer type 'struct Node *' [-Wincompatible-pointer-types]
   19 |     a=a->next;
      |      ^
main.c: In function 'renketu':
main.c:26:11: error: assignment to 'struct Node *' from incompatible pointer type 'Node *' [-Wincompatible-pointer-types]
   26 |   nil->pre=nil;
      |           ^
main.c:27:12: error: assignment to 'struct Node *' from incompatible pointer type 'Node *' [-Wincompatible-pointer-types]
   27 |   nil->next=nil;
      |            ^
main.c: In function 'insert':
main.c:35:12: error: invalid use of undefined type 'struct Node'
   35 |   nil->next->pre=a;
      |            ^~
main.c:36:12: error: assignment to 'struct Node *' from incompatible pointer type 'Node *' [-Wincompatible-pointer-types]
   36 |   nil->next=a;
      |            ^
main.c:37:9: error: assignment to 'struct Node *' from incompatible pointer type 'Node *' [-Wincompatible-pointer-types]
   37 |   a->pre=nil;
      |         ^
main.c: In function 'search':
main.c:41:12: error: initialization of 'Node *' from incompatible pointer type 'struct Node *' [-Wincompatible-pointer-types]
   41 |  Node *ser=nil->next;
      |            ^~~
main.c:44:8: error: assignment to 'Node *' from incompatible pointer type 'struct Node *' [-Wincompatible-pointer-types]
   44 |     ser=ser->next;
      |        ^
main.c:46:10: error: incompatible types when returning type 'Node *' but 'Node' was expected
   46 |   return ser;
      |          ^~~
main.c: In function 'delete':
main.c:51:9: error: invalid use of undefined type 'struct Node'
   51 |   a->pre->next=a->next;
      |         ^~
main.c:52:11: error: 't' undeclared (first use in this function)
   52 |   a->next=t->pre;
      |           ^
main.c:52:11: note: each undeclared identifier is reported only once for each function it appears in
main.c: In function 'fdelet':
main.c:57:13: error: passing argument 1 of 'delete' from incompatible pointer type [-Wincompatible-pointer-types]
   57 |   delete(nil->next);
      |          ~~~^~~~~~
      |             |
      |             struct Node *
main.c:49:19: note: expected 'Node *' but argument is of type 'struct Node *'
   49 | void delete(Node *a){
      |             ~~~~~~^
main.c: In function 'ldelete':
main.c:61:13: error: passing argument 1 of 'delete' from incompatible pointer type [-Wincompatible-pointer-types]
   61 |   delete(nil->pre);
      |          ~~~^~~~~
      |             |
      |             struct Node *
main.c:49:19: note: expected 'Node *' but argument is of type 'struct Node *'
   49 | void delete(Node *a){
      |             ~~~~~~^
main.c: In function 'keydelete':
main.c:65:10: error: incompatible type for argument 1 of 'delete'
   65 |   delete(search(key));
      |          ^~~~~~~~~~~
      |          |
      |          Node
main.c:49:19: note: expected 'Node *' but argument is of type 'Node'
   49 | void delete(Node *a){
      |             ~~~~~~^
main.c: In function 'main':
main.c:80:24: error: implicit declaration of function 'fdelete'; did you mean 'ldelete'? [-Wimplicit-function-declaration]
   80 |         if(a[6]=='F'){ fdelete();
      |                        ^~~~~~~
      |                        ldelete