Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct node
- {
- int data;
- struct node *prev, *next;
- } soldier;
- struct soldier *start, *last;
- int DelListDoubly(int item);
- void insert_front(int item);
- void insert_end(int item);
- soldier* create_soldier(int sequence);
- soldier* create_reverse_circle(int n);
- void insert_end(int item)
- {
- soldier *temp, *t;
- temp = create_soldier(item);
- temp->next=NULL;
- if(start==NULL)
- {
- start=temp;
- temp->prev = temp;
- temp->next= temp;
- }
- else
- {
- t = create_soldier(item);
- while(->next!=NULL)
- temp=temp->next;
- temp->data = temp;
- temp->prev = t;
- }
- }
- void insert_front(int item)
- {
- soldier *temp;
- temp = create_soldier(item);
- temp->prev = NULL;
- temp->next=root;
- if(root!=NULL)
- root->prev=temp;
- root = temp;
- }
- soldier* create_soldier(int sequence){
- soldier *temp;
- temp=(soldier *) malloc(sizeof(soldier));
- temp->data = sequence;
- return temp;
- }
- soldier* create_reverse_circle(int n){
- soldier *temp;
- soldier *t;
- for(int i=0;n>i;n--){
- if(*root==NULL){
- temp = create_soldier(n);
- temp->next = temp->prev = temp;
- *root=temp;
- }
- else{
- t=root;
- while(temp->next!=NULL)
- temp=temp->next;
- t->next=temp;
- root->prev = temp;
- temp->prev = t;
- temp->next = root;
- }
- }
- return temp;
- }
- soldier* rearrange_circle(soldier* head){
- soldier *temp;
- temp =(soldier *) malloc(sizeof(soldier));
- temp->data=head->next;
- }
- void display(soldier* head){
- head=root;
- printf("List = ");
- while(head!=NULL){
- printf("%d ", head->data);
- head = head->next;
- }
- printf("/n");
- }
- int kill(soldier* head, int n, int k){
- }
- int main()
- {
- root=NULL;
- soldier *main;
- int ch,ele,v;
- while(1)
- {
- printf("Menu: 1\nExit: 2\n: ");
- scanf("%d",&ch);
- if(ch==2)
- {
- printf("\nGOOD BYE.\n");
- break;
- }
- if(ch==1)
- {
- printf("\nEnter information(an integer): ");
- scanf("%d",&ele);
- main = create_reverse_circle(ele);
- display(main);
- break;
- }
- /*
- if(ch==1)
- {
- printf("\nEnter information(an integer): ");
- scanf("%d",&ele);
- insert_front(ele);
- printf("\nPrinting ur link list.......");
- t=root;
- while(t!=NULL)
- {
- printf("%d ",t->data);
- t=t->next;
- }
- }
- if(ch==2)
- {
- printf("\nEnter information(an integer): ");
- scanf("%d",&ele);
- insert_end(ele);
- printf("\nPrinting your link list.......");
- t=root;
- while(t!=NULL)
- {
- printf("%d ",t->data);
- t=t->next;
- }
- }
- if(ch==3)
- {
- printf("\nEnter info which u want to DELETE: ");
- scanf("%d",&ele);
- v=DelListDoubly(ele);
- if(v==1)
- {
- printf("\nDeleting....");
- t=root;
- while(t!=NULL)
- {
- printf("%d ",t->data);
- t=t->next;
- }
- }
- else if(v==0)
- printf("\nThat info does not exist in the list");
- }
- */
- }
- return 0;
- }
- int DelListDoubly(int item)
- {
- soldier *t;
- soldier *temp;
- if(root==NULL)
- return 0;
- if(root->data==item)
- {
- temp=root;
- root=root->next;
- if (root != NULL) //new condition for doubly
- root -> prev = NULL;
- free(temp);
- return 1;
- }
- t=root;
- while(t->next!=NULL && t->next->data != item)
- t=t->next;
- if(t->next==NULL)
- return 0;
- temp=t->next;
- t->next=t->next->next;
- if (t->next) //new condition for doubly
- t->next->prev = t;
- free(temp);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement