Program to Delete an element from a doubly linked list.
Answers were Sorted based on User's Feedback
Answer / splurgeop
// assumin all things are given function to delete
from beginning.....
int delete_from_beg()
{
int el;
if(head==NULL)
{
printf("\n can't delete ");
return -1;
}
else
{
struct doubly *temp;
temp=head;
el=temp->info;
head=temp->next;
temp->next=NULL;
head->prev=NULL;
return el;
}
}
//delete from end
int delete_from_end()
{
int el;
if(head==NULL)
{
printf("\n can't delete");
return -1;
}
else
{
struct doubly *temp;
temp=head;
while(temp->next!=NULL)
temp=temp->next;
el=temp->info;
if(temp==head)
head=NULL;
else
temp->prev->next=NULL;
return el;
}
}
// delete from any position
int delete_at_pos(int item)
{
int el,flag=0;
struct doubly *temp;
if(head==NULL)
{
printf("\n cant delete ");
return -1;
}
else
{
temp=head;
while(item>1)
{
item--;
temp=temp->next;
if(temp==NULL&& item>=1)
{
flag=1;
break;
}
}
if(flag==1)
{
el=-1;
printf("\n cant delete at the specified
location");
}
else
{
if(temp==head)
{
el=temp->info;
head=temp->next;
}
else
{
struct doubly *t;
t=temp;
el=temp->info;
temp->prev->next=t->next;
temp->next->prev=t->prev;
}
}
}
return el;
}
// where doubly is structure
struct doubly
{
int data;
struct doubly *prev,*next;
};
Is This Answer Correct ? | 34 Yes | 9 No |
Answer / viktor
typedef int info_t;
typedef struct element
{
info_t info;
struct element *next;
struct element *prev;
}node;
typedef node* nodep;
Function to delete a node:
void del_node(nodep p)
{
(p->prev)->next=p->next;
(p->next)->prev=p->prev;
free(p);
}
Is This Answer Correct ? | 20 Yes | 9 No |
Answer / shruti
to delete an element.
enter the position of the element to be deleted.
-> pos.
structure of node is
struct node
{
int data;
struct node *prev , *next;
}
//home is the starting pointer of hte list.
struct node * delete(struct node *home , int pos)
{
temp = home;
if(pos == 1)
{
temp = home;
home = home -> next;
free(temp);
}
temp = home;
p = home;
for(i = 0 ; i < pos ; i++)
{
p = p -> next;
}
temp = p -> next;
temp1 = temp -> next;
p -> next = temp1;
temp1 -> prev = p
free(temp);
}
return home;
}
Is This Answer Correct ? | 9 Yes | 5 No |
main() { printf("\nab"); printf("\bsi"); printf("\rha"); }
main() { extern i; printf("%d\n",i); { int i=20; printf("%d\n",i); } }
#define prod(a,b) a*b main() { int x=3,y=4; printf("%d",prod(x+2,y-1)); }
void main() { int c; c=printf("Hello world"); printf("\n%d",c); }
main() { int c = 5; printf("%d", main||c); } a. 1 b. 5 c. 0 d. none of the above
Which version do you prefer of the following two, 1) printf(ā%sā,str); // or the more curt one 2) printf(str);
Finding a number multiplication of 8 with out using arithmetic operator
Link list in reverse order.
main() { int i; float *pf; pf = (float *)&i; *pf = 100.00; printf("\n %d", i); } a. Runtime error. b. 100 c. Some Integer not 100 d. None of the above
main() { int i=10; i=!i>14; Printf ("i=%d",i); }
writte a c-programm to display smill paces
main() { char p[ ]="%d\n"; p[1] = 'c'; printf(p,65); }