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 |
#include<stdio.h> main() { struct xx { int x=3; char name[]="hello"; }; struct xx *s; printf("%d",s->x); printf("%s",s->name); }
main() { printf("%x",-1<<4); }
How do you create a really large matrix (i.e. 3500x3500) in C without having the program crash? I can only reach up to 2500. It must have something to do with lack of memory. Please help!
which function is used to clear the buffer stream on gcc? for example: I wrote following code on gcc #include<stdio.h> int main(void) { char ch; int a,b; printf("\nenter two numbers:\t"); scanf("%d%d",&a,&b); printf("enter number is %d and %d",a,b); printf("\nentercharacter:\t"); scanf("%c",&ch); printf("enter character is %c",ch); return 0; } in above progarm ch could not be scan. why?plz tell me solution.
Which version do you prefer of the following two, 1) printf(ā%sā,str); // or the more curt one 2) printf(str);
how to test pierrot divisor
Declare an array of N pointers to functions returning pointers to functions returning pointers to characters?
prog. to produce 1 2 3 4 5 6 7 8 9 10
write the function. if all the character in string B appear in string A, return true, otherwise return false.
main() { if ((1||0) && (0||1)) { printf("OK I am done."); } else { printf("OK I am gone."); } } a. OK I am done b. OK I am gone c. compile error d. none of the above
main() { char *cptr,c; void *vptr,v; c=10; v=0; cptr=&c; vptr=&v; printf("%c%v",c,v); }
main() { int i=1; while (i<=5) { printf("%d",i); if (i>2) goto here; i++; } } fun() { here: printf("PP"); }