17 February 2010

Circular Linked List in C- royalarun.blogspot.com

Circular Linked List in C


#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"

/***** Structure template *****/
struct list{
int roll_no;
char name[20];
float marks;
struct list *next;
};

/***** Redefining struct list as node *****/
typedef struct list node;

void init(node*);
void ins_aft(node*); /*** FUNCTION FOR DELETING A NODE AFTER ***/
node* ins_bef(node*); /*** FUNCTION FOR INSERTING A NODE BEFORE ***/
node* del(node*); /*** FUNCTION FOR DELETING A NODE ***/
void search(node*); /*** FUNCTION FOR SEARCHING CRITERIA INPUT ***/
void disp(node*); /*** FUNCTION DISPLAYING THE NODES ***/
void rollsrch(node*); /*** FUNCTION SEARCHING THROUGH ROLL NUMBER ***/
void namesrch(node*); /*** FUNCTION SEARCHING THROUGH NAME ***/
void marksrch(node*); /*** FUNCTION SEARCHING THROUGH MARKS ***/

/***** Main function *****/
void main()
{
node *head; /* HEAD OF THE LINK LIST */
char ch; /* Choice inputing varible */
int opt; /* Option inputing variable*/
static int flag=0; /* Unchanged after iniialization */
clrscr();
head=(node*)malloc(sizeof(node));
head->next=NULL; /* NULL is being over written in init function */
do
{
again:
printf("\nEnter your option\n");
printf("\n1. Initialize the node\n");
printf("\n2. Insert before a specified node\n");
printf("\n3. Insert after a specified node\n");
printf("\n4. Delete a particular node\n");
printf("\n5. Search the nodes\n");
printf("\n6. Display all the nodes\n");
scanf("%d",&opt);
if(flag==0 && opt!=1)
{
printf("\nNo. You must first initialize at least one node\n");
goto again;
}
if(flag==1 && opt==1)
{
printf("\nInitialisation can occur only once.\n");
printf("\nNow you can insert a node\n");
goto again;
}
if(opt==4 && head->next==head)
{
printf("\nYou cannot delete the one and only the single node\n");
goto again;
}
if(flag==0 && opt==1)
flag=1;
switch(opt)
{
case 1:
init(head);
break;
case 2:
head=ins_bef(head);
break;
case 3:
ins_aft(head);
break;
case 4:
head=del(head);
break;
case 5:
search(head);
break;
case 6:
disp(head);
break;
}
printf("\nDo you wish to continue[y/n]\n");
ch=(char)getche();
}while(ch=='Y' || ch=='y');

printf("\nPress any key to exit\n");
getch();
}

/***** Initialisation function *****/
void init(node *start)
{
printf("\nEnter Roll number\n");
scanf("%d",&start->roll_no);
printf("\nEnter the name\n");
fflush(stdin);
gets(start->name);
printf("\nEnter the marks\n");
scanf("%f",&start->marks);
start->next=start;
}

/***** Function for inserting before a particular node *****/
node* ins_bef(node *start)
{
int rno; /* Roll number for inserting a node*/
node *newnode; /* New inputed node*/
node *current; /* Node for travelling the linked list*/
newnode=(node*)malloc(sizeof(node));
current=start;
printf("\nEnter the roll number before which you want to insert a node\n");
scanf("%d",&rno);
init(newnode);
if(current->roll_no==rno)
{
newnode->next=start;
while(current->next!=start)
current=current->next;
current->next=newnode;
start=newnode;
return(start);
}
while(current->next!=start)
{
if(current->next->roll_no==rno)
{
newnode->next=current->next;
current->next=newnode;
return(start);
}
current=current->next;
}
/*
If the function does not return from any return statement.
There is no match to insert before the input roll number.
*/
printf("\nMatch not found\n");
return(start);
}

/***** Function for inserting after a particular node *****/
void ins_aft(node *start)
{
int rno; /* Roll number for inserting a node*/
int flag=0;
node *newnode; /* New inputed node*/
node *current; /* Node for travelling the linked list*/
newnode=(node*)malloc(sizeof(node));
printf("\nEnter the roll number after which you want to insert a node\n");
scanf("%d",&rno);
init(newnode);
current=start;
while(current->next!=start)
{
/*** Insertion checking for all nodes except last ***/
if(current->roll_no==rno)
{
newnode->next=current->next;
current->next=newnode;
flag=1;
}
current=current->next;
}
if(flag==0 && current->next==start && current->roll_no==rno)
{
/*** Insertion checking for last nodes ***/
newnode->next=current->next; /** start is copied in newnode->next**/
current->next=newnode;
flag=1;
}
if(flag==0 && current->next==start)
printf("\nNo match found\n");
}

/***** deletion function *****/
node* del(node *start)
{
int rno; /* Roll number for deleting a node*/
node *delnode; /* Node to be deleted */
node *current; /* Node for travelling the linked list*/
printf("\nEnter the roll number whose node you want to delete\n");
scanf("%d",&rno);
current=start;
if(current->roll_no==rno)
{
/*** Checking condition for deletion of first node ***/
delnode=current; /* Unnecessary step */
while(current->next!=start)
current=current->next;
current->next=start->next;
start=start->next;
free(delnode);
return(start);
}
else
{
while(current->next->next!=start)
{
/*** Checking condition for deletion of ***/
/*** all nodes except first and last node ***/
if(current->next->roll_no==rno)
{
delnode=current->next;
current->next=current->next->next;
free(delnode);
return(start);
}
current=current->next;
}
if(current->next->next==start && current->next->roll_no==rno)
{
/*** Checking condition for deletion of last node ***/
delnode=current->next;
free(delnode);
current->next=start;
return(start);
}
}
printf("\nMatch not found\n");
return(start);
}

void search(node *start)
{
int ch; /* Choice inputing variable */
printf("\nEnter the criteria for search\n");
printf("\n1. Roll number\n");
printf("\n2. Name\n");
printf("\n3. Marks\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
rollsrch(start);
break;
case 2:
namesrch(start);
break;
case 3:
marksrch(start);
break;
default:
rollsrch(start);
}
}

/***** Search function searching the appropriate roll number *****/
void rollsrch(node *start)
{
int rno; /* Roll number to be searched */
node *current; /* Node for travelling the linked list*/
current=start;
printf("\nEnter the roll number to search\n");
scanf("%d",&rno);
while(current->next!=start)
{
if(current->roll_no==rno)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
current=current->next;
}
if(current->next==start && current->roll_no==rno)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
}

/***** Search function searching the appropriate name *****/
void namesrch(node *start)
{
char arr[20]; /* Name to be searched */
node *current; /* Node for travelling the linked list*/
current=start;
printf("\nEnter the name to search\n");
fflush(stdin);
gets(arr);
while(current->next!=start)
{
if(strcmp(current->name,arr)==NULL)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
current=current->next;
}
if(current->next==start && strcmp(current->name,arr)==NULL)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
}

/***** Search function searching the appropriate marks *****/
void marksrch(node *start)
{
float marks; /* Marks to be searched */
node *current; /* Node for travelling the linked list*/
current=start;
printf("\nEnter the marks to search\n");
scanf("%f",&marks);
while(current->next!=start)
{
if(current->marks==marks)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
current=current->next;
}
if(current->next==start && current->marks==marks)
printf("\n %d %s %f\n",current->roll_no,current->name,current->marks);
}

/***** Output displaying function *****/
void disp(node *start)
{
node *current; /* Node for travelling the linked list*/
current=start;
while(current->next!=start)
{
printf("\n %d %s %f",current->roll_no,current->name,current->marks);
current=current->next;
}
printf("\n %d %s %f",current->roll_no,current->name,current->marks);
}


//Circular Linked List in C


13 February 2010

Print 1 to N without using Looping Statement and goto in C Language royalarun.blogspot.com

Print 1 to N without using Looping and goto Statement in C Language:


void main()
{
int n;
printf("Enter the limit:");
scanf("%d",&n);
fun(n);
}
int fun(int n)
{
static int i=0;
i++;
(i<=n)?printf("\n%d",i):getch();
fun(n);
return 0;
}

8 February 2010

Why Space Pen is invented? Why Pencil Not used in Space royalarun.blogspot.com

Space Pen
The Space Pen (also known as the Zero Gravity Pen), marketed by Fisher Space Pen Company, is a pen that uses pressurized ink cartridges and is claimed to write in zero gravity, upside down, underwater, over wet and greasy paper, at any angle, and in extreme temperature ranges.

Why Pencil is not used in Space?

There exists a common urban legend claiming that the Americans spent millions of dollars developing the Space Pen, and the Russians used a pencil.In fact, NASA programs have used pencils (for example a 1965 order of mechanical pencils) but because of the danger that a broken-off pencil tip poses in zero gravity and the flammable nature of the wood present in pencils a better solution was needed.

NASA never approached Paul Fisher to develop a pen, nor did Fisher receive any government funding for the pen's development. Fisher invented it independently, and then asked NASA to try it. After the introduction of the AG7 Space Pen, both the American and Soviet (later Russian) space agencies adopted it. Previously both the Russian and American astronauts used grease pencils and plastic slates.


3Idiots

In the 2009 Bollywood movie, 3 Idiots, Aamir Khan (as the rebellious Rancho) momentarily flummoxes the college Dean with the pencil conundrum, which the Dean finally sets right towards the end (by explaining how a broken pencil tip would harm people in space, and clog the instruments). However, the Dean awarded that pen to Rancho (Aamir Khan) in order to acknowledge his presence of mind and also to approve him as an "extraordinary student".

Why Java is not Purely Object Oriented? royalarun.blogspot.com

Object-Orientation

Many languages claim to be Object-Oriented. While the exact definition of the term is highly variable depending upon who you ask, there are several qualities that most will agree an Object-Oriented language should have:

1.Encapsulation/Information Hiding
2.Inheritance
3.Polymorphism/Dynamic Binding
4.All pre-defined types are Objects
5.All operations performed by sending messages to Objects
6.All user-defined types are Objects

For the purposes of this discussion, a language is considered to be a "pure" Object-Oriented languages if it satisfies all of these qualities. A "hybrid" language may support some of these qualities, but not all. In particular, many languages support the first three qualities, but not the final three.

Eiffel, Smalltalk, and Ruby are all pure Object-Oriented languages, supporting all six qualities listed above. Java claims to be a pure Object-Oriented language, but by its inclusion of "basic" types that are not objects, it fails to meet our fourth quality. It fails also to meet quality five by implementing basic arithmetic as built-in operators, rather than messages to objects.

C++ is considered to be a multi-paradigm language, of which one paradigm it supports is Object-Orientation. Thus, C++ is not (nor does it contend to be) a pure Object-Oriented language.

Java, while it does not support pure implementation inheritance, provides two separate inheritance mechanisms. The extends keyword is used for a combination of implementation and subtype inheritance while the implements keyword is used for pure subtype (interface) inheritance.

Implementing OAuth validation in a Web API

 I mplementing OAuth validation in a Web API Implementing OAuth validation in a Web API using C# typically involves several key steps to sec...