mirror of
https://github.com/Hizenberg469/C1-Linux_SYS_Prog-AS-.git
synced 2026-04-19 18:32:24 +03:00
More Organised
This commit is contained in:
21
Header_files/A.h
Normal file
21
Header_files/A.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: A.h
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 02/02/24 10:15:59 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define max(a,b) ( a > b ? a : b )
|
||||||
|
int sum(int a,int b);
|
||||||
21
Header_files/B.h
Normal file
21
Header_files/B.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: B.h
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 02/02/24 10:18:06 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "A.h"
|
||||||
|
#define min(a,b) ( a > b ? b : a )
|
||||||
|
int multiply ( int a , int b );
|
||||||
31
Header_files/app.c
Normal file
31
Header_files/app.c
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: app.c
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 02/02/24 10:43:11 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "B.h"
|
||||||
|
#define square(x) ( x*x )
|
||||||
|
|
||||||
|
|
||||||
|
int foo(int b);
|
||||||
|
int foo(int b){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a = square(15);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
28
Header_files/app.i
Normal file
28
Header_files/app.i
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# 0 "app.c"
|
||||||
|
# 0 "<built-in>"
|
||||||
|
# 0 "<command-line>"
|
||||||
|
# 1 "/usr/include/stdc-predef.h" 1 3 4
|
||||||
|
# 0 "<command-line>" 2
|
||||||
|
# 1 "app.c"
|
||||||
|
# 19 "app.c"
|
||||||
|
# 1 "B.h" 1
|
||||||
|
# 19 "B.h"
|
||||||
|
# 1 "A.h" 1
|
||||||
|
# 21 "A.h"
|
||||||
|
int sum(int a,int b);
|
||||||
|
# 20 "B.h" 2
|
||||||
|
|
||||||
|
int multiply ( int a , int b );
|
||||||
|
# 20 "app.c" 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int foo(int b);
|
||||||
|
int foo(int b){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a = ( 15*15 );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
82
Quick_Compilation/application.c
Normal file
82
Quick_Compilation/application.c
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: application.c
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 28/01/24 07:56:36 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "dll.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/*Application specific data structures*/
|
||||||
|
typedef struct person_{
|
||||||
|
|
||||||
|
char name[32];
|
||||||
|
int age;
|
||||||
|
int weight;
|
||||||
|
} person_t;
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_person_details(person_t *person){
|
||||||
|
|
||||||
|
printf("Name = %s\n", person->name);
|
||||||
|
printf("Age = %d\n", person->age);
|
||||||
|
printf("weight = %d\n", person->weight);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_person_db(dll_t *person_db) {
|
||||||
|
|
||||||
|
if(!person_db || !person_db->head) return;
|
||||||
|
|
||||||
|
dll_node_t *head = person_db->head;
|
||||||
|
person_t *data = NULL;
|
||||||
|
|
||||||
|
while(head){
|
||||||
|
data = head->data;
|
||||||
|
print_person_details(data);
|
||||||
|
head = head->right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv){
|
||||||
|
|
||||||
|
person_t *person1 = calloc(1, sizeof(person_t));
|
||||||
|
strncpy(person1->name, "Abhishek", strlen("Abhishek"));
|
||||||
|
person1->age = 31;
|
||||||
|
person1->weight = 75;
|
||||||
|
person_t *person2 = calloc(1, sizeof(person_t));
|
||||||
|
strncpy(person2->name, "Joseph", strlen("Joseph"));
|
||||||
|
person2->age = 41;
|
||||||
|
person2->weight = 70;
|
||||||
|
person_t *person3 = calloc(1, sizeof(person_t));
|
||||||
|
strncpy(person3->name, "Jack", strlen("Jack"));
|
||||||
|
person3->age = 29;
|
||||||
|
person3->weight = 55;
|
||||||
|
|
||||||
|
/*Create a new Linked List*/
|
||||||
|
|
||||||
|
dll_t *person_db = get_new_dll();
|
||||||
|
add_data_to_dll(person_db, person1);
|
||||||
|
add_data_to_dll(person_db, person2);
|
||||||
|
add_data_to_dll(person_db, person3);
|
||||||
|
|
||||||
|
print_person_db(person_db);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
90
Quick_Compilation/dll.c
Normal file
90
Quick_Compilation/dll.c
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: dll.c
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 28/01/24 07:59:34 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "dll.h"
|
||||||
|
#include <memory.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/* Public Function Implementation to create and return
|
||||||
|
* new empty doubly linked list*/
|
||||||
|
|
||||||
|
dll_t *
|
||||||
|
get_new_dll(){
|
||||||
|
|
||||||
|
dll_t *dll = calloc(1, sizeof(dll_t));
|
||||||
|
dll->head = NULL;
|
||||||
|
return dll;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public Function Implementation to add a new application
|
||||||
|
* * data to DLL */
|
||||||
|
int
|
||||||
|
add_data_to_dll (dll_t *dll, void *app_data){
|
||||||
|
|
||||||
|
if(!dll || !app_data) return -1;
|
||||||
|
|
||||||
|
dll_node_t *dll_new_node = calloc(1, sizeof(dll_node_t));
|
||||||
|
dll_new_node->left = NULL;
|
||||||
|
dll_new_node->right = NULL;
|
||||||
|
dll_new_node->data = app_data;
|
||||||
|
|
||||||
|
/*Now add this to the front of DLL*/
|
||||||
|
if(!dll->head){
|
||||||
|
dll->head = dll_new_node;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dll_node_t *first_node = dll->head;
|
||||||
|
dll_new_node->right = first_node;
|
||||||
|
first_node->left = dll_new_node;
|
||||||
|
dll->head = dll_new_node;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
remove_data_from_dll_by_data_ptr (dll_t *dll, void *data ){
|
||||||
|
|
||||||
|
if( !dll || !dll->head || !data ) return -1;
|
||||||
|
|
||||||
|
/* Searching for data linearly and deleting the data*/
|
||||||
|
dll_node_t *tp;
|
||||||
|
dll_node_t *temp = dll->head;
|
||||||
|
while( !temp ){
|
||||||
|
if( *((int *)temp->data) == *((int *)data) ){
|
||||||
|
tp = temp->left;
|
||||||
|
tp->right = temp->right;
|
||||||
|
free(temp);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
temp = temp->right;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
is_dll_empty(dll_t *dll){
|
||||||
|
|
||||||
|
if( !dll || !dll->head ) return 0;
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
56
Quick_Compilation/dll.h
Normal file
56
Quick_Compilation/dll.h
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* =====================================================================================
|
||||||
|
*
|
||||||
|
* Filename: dll.h
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* Version: 1.0
|
||||||
|
* Created: 28/01/24 07:58:51 PM IST
|
||||||
|
* Revision: none
|
||||||
|
* Compiler: gcc
|
||||||
|
*
|
||||||
|
* Author: YOUR NAME (),
|
||||||
|
* Organization:
|
||||||
|
*
|
||||||
|
* =====================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*Header file for Doubly Linked List*/
|
||||||
|
|
||||||
|
typedef struct dll_node_{
|
||||||
|
|
||||||
|
void *data;
|
||||||
|
struct dll_node_ *left;
|
||||||
|
struct dll_node_ *right;
|
||||||
|
} dll_node_t;
|
||||||
|
|
||||||
|
typedef struct dll_{
|
||||||
|
dll_node_t *head;
|
||||||
|
} dll_t;
|
||||||
|
|
||||||
|
|
||||||
|
/* Public Function declaration to create and return
|
||||||
|
* a new empty doubly linked list*/
|
||||||
|
dll_t *
|
||||||
|
get_new_dll();
|
||||||
|
|
||||||
|
/* Public Function declaration to add the application
|
||||||
|
* data to DLL*/
|
||||||
|
int
|
||||||
|
add_data_to_dll(dll_t *dll, void *app_data);
|
||||||
|
|
||||||
|
|
||||||
|
/*More functions*/
|
||||||
|
int /*return 0 on success and -1 on failure*/
|
||||||
|
remove_data_from_dll_by_data_ptr (dll_t *dll, void *data);
|
||||||
|
|
||||||
|
/*return 0 if empty, -1 if not empty*/
|
||||||
|
int
|
||||||
|
is_dll_empty (dll_t *dll);
|
||||||
|
|
||||||
|
/* delete all nodes from a dll, but do not free appln data*/
|
||||||
|
void
|
||||||
|
drain_dll (dll_t *dll);
|
||||||
|
|
||||||
Reference in New Issue
Block a user