I am beginner in a linked list programming and i need some advices.
First of all, what is the diferences between :
Expand|Select|Wrap|Line Numbers
- typedef struct node
- {
- int data;
- struct node *next;
- };
Expand|Select|Wrap|Line Numbers
- struct node
- {
- int data;
- struct node *next;
- }*head;
I have passed the head of linked list every function, i dont know why but it dont works.
Expand|Select|Wrap|Line Numbers
- #include<stdio.h>
- #include<stdlib.h>
- #include<malloc.h>
- typedef struct node
- {
- int data;
- struct node *next;
- };
- int main()
- {
- struct node *head;
- Create_List(head);
- Print_List(head);
- Number_of_Key(head);
- }
- void Create_List(struct node *head)
- {
- int alege = 1;
- do
- {
- struct node *new_node, *current = NULL;
- head = NULL;
- new_node = (struct node *)malloc(sizeof(struct node));
- printf("\n Enter the data : ");
- scanf("%d", &new_node->data);
- if(head == NULL)
- {
- head = new_node;
- current = new_node;
- }
- else
- {
- current->next = new_node;
- current = new_node;
- }
- printf("\n Do you want to creat another element ? (Apasa \"1\" sau \"0\") : ");
- scanf("%d", &alege);
- } while(alege != 0);
- }
- void Print_List(struct node *head)
- {
- struct node *temp;
- temp = head;
- printf("\n The Linked List : ");
- while(temp != NULL)
- {
- printf(" %d ->", temp->data);
- temp = temp->next;
- }
- printf(" NULL");
- printf("\n");
- }
- void Number_of_Key(struct node *head)
- {
- struct node *current;
- int key, counter = 0;
- printf("\n Enter the key number : ");
- scanf("%d", &key);
- current = head;
- while(current != NULL)
- {
- if(current->data == key)
- counter++;
- current = current->next;
- }
- printf("\n The key number \"%d\" is in the list %d times!\n", key, counter);
- }