1. ## Creating Linked List Using Hashing and Stack

Hi All,

For a while I've been stuck on something and I couldn't get out of it,
Simply, I'm trying to create and linked list while using "stack" method, and as I'm doing this, I must
use Hashing algorithm, I'm so alien to linked list, after I worked on them I understood the logic of
it, but still Im having many problems.

First Of All, while doing hashing in linked list, I have to declare an Array and Each item in
the array is a pointer to the linked list (stack) of the input(ID,number..) mapped to that index.

According to my understandings I've created this kind of algorithm but first I ve tried to do it
without using any hashing, I tried to do simple stack program, now I want to add hashing function
into this, however I got confused, everything got confused...

Here is my program, what do you think thet where I'm wrong at, and where I'm supposed to work on or change,

Code:
```#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENGTH 10

typedef struct student {
int id;
struct student* next;
char name[10];
char surname[10];
}students;

void push( students** head, int key,char name[30],char surname[30] );
int menu(); // I gotta pass something after created hash and array
void insert(); // I gotta pass something after created hash and array
void search();// I gotta pass something after created hash and array
void readfile();// I gotta pass something after created hash and array
void writefile();// I gotta pass something after created hash and array

int key;
char name[30];
char surname[30];
students* current;
students* current2;
void main() {

typedef struct students_* student; // not used in program
student students_[LENGTH]; //not used in program

int choice;
while(choice!=0){
switch(choice){
case 0:
break;
case 1:
break;
case 2:
insert();
break;
/*	case 3:
count();
break;*/
case 4:
break;
}
}

}
void push( students** head, int key,char name[30],char surname[30] ) {

students* new;
new = malloc(sizeof(students));
new->id = key;
strcpy(new->name,name);
strcpy(new->surname,surname);
}
int x;
printf("\nTo Exit Press\t0\nTo Search Press\t1\nTo Insert Press\t2\nTo Count Press\t3\nTo List Press\t4\n");
scanf("%d",&x);
clrscr();
return x;
}

//------------------------------------------------------------------------
void insert(){
do {
printf("Enter The ID To Exit Press 0\n");
scanf("%d", &key);
if(key==0)
break;
printf("Enter The Name\n");
scanf("%s",name);
printf("Enter The Surname\n");
scanf("%s",surname);
if ( key != 0 )