SlideShare a Scribd company logo
Q) Session10 a)Execute program to remove negative values from list of values by using
queues
Program:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int queue[MAX],f=-1,r=-1;
void enq();
void deq();
void display();
void deletenegative();
main()
{
int n,i;
printf("enter the number of elements");
scanf("%d",&n);
for(i=1;i<=n;i++)
enq();
display();
printf("nAfter deleting negative valuesn");
deletenegative();
display();
}
void enq()
{
int val;
if(r==MAX-1) {
printf("Queue full");
return;
}
else if(f == -1 && r == -1)
f=r=0;
else
r=r+1;
printf("enter the data to be enteredn");
scanf("%d",&val);
queue[r]=val;
}
void deq()
{
if(f==-1)
{
printf("underflow");
return;
}
if(f ==r)
f=r=-1;
else
f=f+1;
}
void display()
{
int i;
if(f ==-1)
printf("queue emptyn");
else
{
for(i=f; i<=r;i++)
printf("%dt",queue[i]);
}
}
void move(int i)
{
for( ;i<r;i++)
queue[i]=queue[i+1];
}
void deletenegative()
{
int i;
if(f ==-1)
printf("queue emptyn");
else
{
for(i=f; i<=r;)
{
if(queue[i] <0)
{
if(i==f)
{
deq();
i=i+1;
}
else
{
move(i);
r=r-1;
i=i-1;
}
}
else
i=i+1;
}
}
}
To see output... See my blog
http://enthusiaststudent.blogspot.in/2017/01/removing-negative-values-in-queues-c.html
Q) 10 bEnqueue, Dequeue and Display operations in Circular Queue using Arrays
#include <stdio.h>
#include <stdlib.h>
#define MAX 5
int cqueue[MAX], front=-1, rear=-1;
void deq();
void enq();
void display();
main()
{
int n,i;
printf("enter the number of elements");
scanf("%d",&n);
for(i=1;i<=n;i++)
enq();
display();
deq();
display();
}
void enq()
{
int val;
if((front == 0 && rear == MAX-1)||(front == rear+1))
{
printf("Queue full");
return;
}
if(front == -1 && rear == -1)
front = rear = 0;
else if(rear == MAX-1)
rear== 0;
else
rear=rear+1;
printf("enter the data to be enteredn");
scanf("%d",&val);
cqueue[rear]=val;
}
void deq()
{
if(front == -1 && rear == -1)
{
printf("queue is empty");
return;
}
printf("ndeleted element=%dn ",cqueue[front]);
if(front == rear)
front = rear = -1;
else if(front == MAX-1)
front = 0;
else
front = front+1;
}
void display()
{
int i;
if(front <= rear)
{
for(i=front;i<=rear;i++)
printf("%dt",cqueue[i]);
}
else
{
for(i=front;i<MAX;i++)
printf("%dt",cqueue[i]);
for(i=0;i<=rear;i++)
printf("%dt",cqueue[i]);
}
}
Q) Program to implement Ascending Priority queue
#include<stdio.h>
#include <stdlib.h>
struct node
{
int data,pri;
struct node *next;
};
struct node *head=NULL,*c,*p;
void create();
void display();
void deleteMin();
main()
{
int n,i;
printf("enter the number of elements");
scanf("%d",&n);
for(i=1;i<=n;i++)
create();
display();
deleteMin();
printf("n after deleting one element, the contents of apq are :n");
display();
}
void create()
{
int v,priority;
printf("enter value and priorityn");
scanf("%d%d",&v,&priority);
struct node *newnode = (struct node *)malloc(sizeof(struct node));
newnode->data =v;
newnode->pri=priority;
newnode->next = NULL;
if(head == NULL)
head = newnode;
else if( newnode->pri < head->pri)
{
newnode->next=head;
head=newnode;
}
else
{
c=head;
while(newnode->pri >= c->pri && c->next != NULL)
{
p=c;
c=c->next;
}
if(c->next == NULL && newnode->pri >= c->pri)
c->next=newnode;
else
{
p->next = newnode;
newnode->next=c;
}
}
}
void display()
{
if(head == NULL)
printf("list is empty");
else
{
c=head;
while(c != NULL)
{
printf("%d %d->",c->data,c->pri);
c=c->next;
}
}
}
void deleteMin()
{
/* delete the first node as the first node is minimum in ascending priority queue*/
c=head;
head=head->next;
free(c);
}
Session-13 A) What is a recursive solution to summing up a list of numbers? First you
should note that the sum of [2 13 4 25 66 71 82 91]) is equal to 2 + sum of [ 13 4 25 66 71
82 91]
#include <stdio.h>
int sum(int *a,int index,int n)
{
if(index == n)
return 0;
return(a[index]+sum(a,index+1,n));
}
main()
{
int n,i,a[100];
printf("enter size of arrayn");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("array sum =%d",sum(a,0,n));
}
Session-13b) . Write a recursive function called elfish? that, given a word, tells us if that
word is elfish or not.
#include <stdio.h>
int elfish(char *s,char *b, int i)
{
if(b[i]=='0')
return 1;
int k,flag=0;
for(k=0;s[k]!='0';k++)
{
if(s[k]==b[i])
{
flag=1;
break;
}
}
if(flag == 1)
return elfish(s,b,i+1);
else
return 0;
}
main()
{
char s[100],b[4]="elf";
int result;
printf("enter the stringn");
gets(s);
result=elfish(s,b,0);
if(result ==0)
printf("given string is not elfish");
else
printf("given string is elfish");
}
Session-14a)Write a recursive function to Find the total number of sequences of length
n (using H and T) such that no two Hs are next to each other.
#include <stdio.h>
int a[20];
int total_seq(int n)
{
if(n == 1)
return 2;
if(n ==2)
return 3;
if(a[n]!=-1 )
return a[n];
a[n]=total_seq(n-1)+total_seq(n-2);
return a[n];
}
main()
{
int n,i;
printf("enter n value");
scanf("%d",&n);
for(i=0;i<20;i++)
a[i]=-1;
printf("n Total number of sequences = %d",total_seq(n));
}
Session14 b) Given an array of positive numbers, find the maximum sum of a
subsequence with the constraint that no 2 numbers in the sequence should be adjacent
in the array.
#include<stdio.h>
int excl,incl;
/*Function to return max sum such that no two elements are adjacent */
int FindMaxSum(int *a, int index, int n)
{
int temp;
if(index == n)
return incl;
else
{
temp=incl;
if(incl<(excl+a[index]))
incl=excl+a[index];
excl = temp;
return FindMaxSum(a,index+1,n);
}
}
main()
{
int n, a[100],i;
printf(“enter the number of elementsn”);
scanf(“%d”, &n);
printf(“enter array elementsn”);
for(i=0;i<n;i++)
scanf(“%d”, &a[i]);
incl = a[0];
excl = 0;
printf("nMaximum sum of non- adjacent elements= %d n", FindMaxSum(a,1, n));
}
Session-15a)
Infix to postfix conversion
#include<stdio.h>
#include <process.h>
#define MAX 50
char stack[MAX];
int top=-1;
int getpriority(char);
void push(char);
char pop();
main()
{
char infix[50],temp,ch,postfix[50];
int i,j=0;
printf("enter the infix expressionn");
scanf("%s",&infix);
for(i=0; infix[i] != '0'; i++)
{
ch=infix[i];
if(ch == '(')
push(ch);
else if(ch == ')')
{
while(stack[top]!='(')
postfix[j++]=pop();
temp=pop();// popping the (
}
else if(isalnum(ch))
postfix[j++]=ch;
else
{
while(getpriority(stack[top])>=getpriority(ch))
postfix[j++]=pop();
push(ch);
}
}
while(top != -1)
postfix[j++]=pop();
postfix[j]='0';
puts(postfix);
}
int getpriority(char ch)
{
if( ch == '*'|| ch == '/'|| ch == '%')
return 2;
else if(ch == '+' || ch == '-')
return 1;
else
return 0;
}
void push(char item)
{
if(top == MAX-1)
{
printf("stack is full");
return;
}
top=top+1;
stack[top]=item;
}
char pop()
{
if(top == -1)
{
printf("stack empty");
return;
}
char temp;
temp=stack[top];
top=top-1;
return temp;
}
Evaluating PostFix expression
#include<stdio.h>
#include <process.h>
#include <string.h>
#define MAX 50
char stack[MAX];
int top=-1;
void push(float);
float pop();
void main()
{
char exp[MAX],temp,ch;
int i;
float op1,op2,value;
printf("Enter an expression : ");
gets(exp);
for(i=0;i<strlen(exp);i++)
{
ch=exp[i];
if(isdigit(ch))
push((float)ch-'0');
else
{
op2=pop();
op1=pop();
switch(ch)
{
case '+':
value=op1+op2;
break;
case '-':
value=op1-op2;
break;
case '*':
value=op1*op2;
break;
case '/':
value=op1/op2;
break;
case '%':
value=(int)op1%(int)op2;
break;
}
push(value);
}
}
printf("n Result=%f",pop());
}
void push(float item)
{
if(top == MAX-1)
{
printf("stack is full");
return;
}
top=top+1;
stack[top]=item;
}
float pop()
{
if(top == -1)
{
printf("stack empty");
return;
}
float temp;
temp=stack[top];
top=top-1;
return temp;
}

More Related Content

What's hot (20)

DOCX
Data Structures Using C Practical File
Rahul Chugh
 
DOC
Daa practicals
Rekha Yadav
 
PDF
C Prog - Array
vinay arora
 
DOC
Ada file
Kumar Gaurav
 
PPSX
C programming array & shorting
argusacademy
 
PDF
Os lab 1st mid
Murali Kummitha
 
DOCX
Lab manual operating system [cs 502 rgpv] (usefulsearch.org) (useful search)
Make Mannan
 
TXT
Programs for Operating System
LPU
 
DOCX
Cpds lab
praveennallavelly08
 
DOC
Os 2 cycle
Chaitanya Kn
 
DOCX
Computer graphics programs in c++
Ankit Kumar
 
PDF
Data Structures Practical File
Harjinder Singh
 
PDF
C Prog. - Strings (Updated)
vinay arora
 
DOCX
Programs
kulwinderbawa007
 
PPT
Struct examples
mondalakash2012
 
PDF
programs
Vishnu V
 
DOCX
Cg my own programs
Amit Kapoor
 
DOCX
Wap in c to draw a line using DDA algorithm
Kapil Pandit
 
PPT
computer graphics practicals
Manoj Chauhan
 
Data Structures Using C Practical File
Rahul Chugh
 
Daa practicals
Rekha Yadav
 
C Prog - Array
vinay arora
 
Ada file
Kumar Gaurav
 
C programming array & shorting
argusacademy
 
Os lab 1st mid
Murali Kummitha
 
Lab manual operating system [cs 502 rgpv] (usefulsearch.org) (useful search)
Make Mannan
 
Programs for Operating System
LPU
 
Os 2 cycle
Chaitanya Kn
 
Computer graphics programs in c++
Ankit Kumar
 
Data Structures Practical File
Harjinder Singh
 
C Prog. - Strings (Updated)
vinay arora
 
Struct examples
mondalakash2012
 
programs
Vishnu V
 
Cg my own programs
Amit Kapoor
 
Wap in c to draw a line using DDA algorithm
Kapil Pandit
 
computer graphics practicals
Manoj Chauhan
 

Viewers also liked (12)

PDF
Points lines and planes Lesson 1
Jacqueline Pfaltz
 
PDF
Mandela's Dream Collonium-Reconsiliation - Copy
Buchule Makinana
 
PPTX
sistema nervioso autonomo
Carol Rodriguez
 
DOCX
WALI ULLAH HABIB ULLAH (1) (4)
wali ullah
 
PPTX
Broadcast journalism
Ria priya
 
PPTX
Noticia de google
Nicolas Vega Rodriguez
 
PPTX
studying english abroad or studying at home
Ngọc Huyền
 
DOCX
Evaluation Question 3
Sam Benzie
 
PPTX
Teoria de cola_carmelaabreu
carmela1025
 
PPT
CIUDADANIA LOS DERECHOS HUMANOS
291103
 
PDF
Analisi di mercato del settore dei ricambi per automobili in Russia - 2017
GruppoBPC International
 
Points lines and planes Lesson 1
Jacqueline Pfaltz
 
Mandela's Dream Collonium-Reconsiliation - Copy
Buchule Makinana
 
sistema nervioso autonomo
Carol Rodriguez
 
WALI ULLAH HABIB ULLAH (1) (4)
wali ullah
 
Broadcast journalism
Ria priya
 
Noticia de google
Nicolas Vega Rodriguez
 
studying english abroad or studying at home
Ngọc Huyền
 
Evaluation Question 3
Sam Benzie
 
Teoria de cola_carmelaabreu
carmela1025
 
CIUDADANIA LOS DERECHOS HUMANOS
291103
 
Analisi di mercato del settore dei ricambi per automobili in Russia - 2017
GruppoBPC International
 
Ad

Similar to Solutionsfor co2 C Programs for data structures (20)

PDF
Cs101 endsem 2014
RamKumar42580
 
PDF
Data Structure using C
Bilal Mirza
 
DOCX
Artificial intelligence
Aditya Sharma
 
PDF
Sujal Shripat Shirole ds practical book
sujalshirole35
 
PPTX
Mcs011 solved assignment by divya singh
DIVYA SINGH
 
PDF
codes.txt.pdf code presentation engineering
ts5092207
 
DOCX
Let us C (by yashvant Kanetkar) chapter 3 Solution
Hazrat Bilal
 
PDF
Classical programming interview questions
Gradeup
 
PDF
sodapdf-converted into ppt presentation(1).pdf
MuhammadMaazShaik
 
DOCX
Qprgs
Ssankett Negi
 
PDF
09 a1ec01 c programming and data structures
jntuworld
 
PDF
25422733 c-programming-and-data-structures-lab-manual
kamesh dagia
 
DOCX
Write a program to check a given number is prime or not
aluavi
 
PDF
VTU Data Structures Lab Manual
Nithin Kumar,VVCE, Mysuru
 
PPTX
data structure with algoritham vtu 2 module 1st sem 2023.pptx
hemanthkumar40680
 
PDF
Ch01 basic concepts_nosoluiton
shin
 
PDF
C Programming Project
Vijayananda Mohire
 
Cs101 endsem 2014
RamKumar42580
 
Data Structure using C
Bilal Mirza
 
Artificial intelligence
Aditya Sharma
 
Sujal Shripat Shirole ds practical book
sujalshirole35
 
Mcs011 solved assignment by divya singh
DIVYA SINGH
 
codes.txt.pdf code presentation engineering
ts5092207
 
Let us C (by yashvant Kanetkar) chapter 3 Solution
Hazrat Bilal
 
Classical programming interview questions
Gradeup
 
sodapdf-converted into ppt presentation(1).pdf
MuhammadMaazShaik
 
09 a1ec01 c programming and data structures
jntuworld
 
25422733 c-programming-and-data-structures-lab-manual
kamesh dagia
 
Write a program to check a given number is prime or not
aluavi
 
VTU Data Structures Lab Manual
Nithin Kumar,VVCE, Mysuru
 
data structure with algoritham vtu 2 module 1st sem 2023.pptx
hemanthkumar40680
 
Ch01 basic concepts_nosoluiton
shin
 
C Programming Project
Vijayananda Mohire
 
Ad

More from Lakshmi Sarvani Videla (20)

DOCX
Data Science Using Python
Lakshmi Sarvani Videla
 
DOCX
Programs on multithreading
Lakshmi Sarvani Videla
 
PPT
Menu Driven programs in Java
Lakshmi Sarvani Videla
 
DOCX
Recursion in C
Lakshmi Sarvani Videla
 
DOCX
Simple questions on structures concept
Lakshmi Sarvani Videla
 
PPTX
Errors incompetitiveprogramming
Lakshmi Sarvani Videla
 
DOCX
Relational Operators in C
Lakshmi Sarvani Videla
 
PPTX
Recursive functions in C
Lakshmi Sarvani Videla
 
PPTX
Function Pointer in C
Lakshmi Sarvani Videla
 
PPTX
Functions
Lakshmi Sarvani Videla
 
DOCX
Java sessionnotes
Lakshmi Sarvani Videla
 
DOCX
Singlelinked list
Lakshmi Sarvani Videla
 
PPTX
Functions in python3
Lakshmi Sarvani Videla
 
PPTX
Dictionary
Lakshmi Sarvani Videla
 
DOC
Data Mining: Data Preprocessing
Lakshmi Sarvani Videla
 
Data Science Using Python
Lakshmi Sarvani Videla
 
Programs on multithreading
Lakshmi Sarvani Videla
 
Menu Driven programs in Java
Lakshmi Sarvani Videla
 
Recursion in C
Lakshmi Sarvani Videla
 
Simple questions on structures concept
Lakshmi Sarvani Videla
 
Errors incompetitiveprogramming
Lakshmi Sarvani Videla
 
Relational Operators in C
Lakshmi Sarvani Videla
 
Recursive functions in C
Lakshmi Sarvani Videla
 
Function Pointer in C
Lakshmi Sarvani Videla
 
Java sessionnotes
Lakshmi Sarvani Videla
 
Singlelinked list
Lakshmi Sarvani Videla
 
Functions in python3
Lakshmi Sarvani Videla
 
Data Mining: Data Preprocessing
Lakshmi Sarvani Videla
 

Recently uploaded (20)

PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 

Solutionsfor co2 C Programs for data structures

  • 1. Q) Session10 a)Execute program to remove negative values from list of values by using queues Program: #include <stdio.h> #include <stdlib.h> #define MAX 10 int queue[MAX],f=-1,r=-1; void enq(); void deq(); void display(); void deletenegative(); main() { int n,i; printf("enter the number of elements"); scanf("%d",&n); for(i=1;i<=n;i++) enq(); display(); printf("nAfter deleting negative valuesn"); deletenegative(); display(); } void enq() { int val; if(r==MAX-1) { printf("Queue full"); return; } else if(f == -1 && r == -1) f=r=0; else r=r+1; printf("enter the data to be enteredn"); scanf("%d",&val); queue[r]=val; } void deq() { if(f==-1) {
  • 2. printf("underflow"); return; } if(f ==r) f=r=-1; else f=f+1; } void display() { int i; if(f ==-1) printf("queue emptyn"); else { for(i=f; i<=r;i++) printf("%dt",queue[i]); } } void move(int i) { for( ;i<r;i++) queue[i]=queue[i+1]; } void deletenegative() { int i; if(f ==-1) printf("queue emptyn"); else { for(i=f; i<=r;) { if(queue[i] <0) { if(i==f) { deq(); i=i+1; } else {
  • 3. move(i); r=r-1; i=i-1; } } else i=i+1; } } } To see output... See my blog http://enthusiaststudent.blogspot.in/2017/01/removing-negative-values-in-queues-c.html Q) 10 bEnqueue, Dequeue and Display operations in Circular Queue using Arrays #include <stdio.h> #include <stdlib.h> #define MAX 5 int cqueue[MAX], front=-1, rear=-1; void deq(); void enq(); void display(); main() { int n,i; printf("enter the number of elements"); scanf("%d",&n); for(i=1;i<=n;i++) enq(); display();
  • 4. deq(); display(); } void enq() { int val; if((front == 0 && rear == MAX-1)||(front == rear+1)) { printf("Queue full"); return; } if(front == -1 && rear == -1) front = rear = 0; else if(rear == MAX-1) rear== 0; else rear=rear+1; printf("enter the data to be enteredn"); scanf("%d",&val); cqueue[rear]=val; } void deq() { if(front == -1 && rear == -1) { printf("queue is empty"); return;
  • 5. } printf("ndeleted element=%dn ",cqueue[front]); if(front == rear) front = rear = -1; else if(front == MAX-1) front = 0; else front = front+1; } void display() { int i; if(front <= rear) { for(i=front;i<=rear;i++) printf("%dt",cqueue[i]); } else { for(i=front;i<MAX;i++) printf("%dt",cqueue[i]); for(i=0;i<=rear;i++) printf("%dt",cqueue[i]); } } Q) Program to implement Ascending Priority queue
  • 6. #include<stdio.h> #include <stdlib.h> struct node { int data,pri; struct node *next; }; struct node *head=NULL,*c,*p; void create(); void display(); void deleteMin(); main() { int n,i; printf("enter the number of elements"); scanf("%d",&n); for(i=1;i<=n;i++) create(); display(); deleteMin(); printf("n after deleting one element, the contents of apq are :n"); display(); } void create() { int v,priority; printf("enter value and priorityn"); scanf("%d%d",&v,&priority); struct node *newnode = (struct node *)malloc(sizeof(struct node)); newnode->data =v; newnode->pri=priority; newnode->next = NULL; if(head == NULL) head = newnode; else if( newnode->pri < head->pri) { newnode->next=head; head=newnode; } else { c=head; while(newnode->pri >= c->pri && c->next != NULL) { p=c; c=c->next; } if(c->next == NULL && newnode->pri >= c->pri) c->next=newnode; else
  • 7. { p->next = newnode; newnode->next=c; } } } void display() { if(head == NULL) printf("list is empty"); else { c=head; while(c != NULL) { printf("%d %d->",c->data,c->pri); c=c->next; } } } void deleteMin() { /* delete the first node as the first node is minimum in ascending priority queue*/ c=head; head=head->next; free(c); } Session-13 A) What is a recursive solution to summing up a list of numbers? First you should note that the sum of [2 13 4 25 66 71 82 91]) is equal to 2 + sum of [ 13 4 25 66 71 82 91] #include <stdio.h> int sum(int *a,int index,int n) { if(index == n) return 0; return(a[index]+sum(a,index+1,n)); } main() { int n,i,a[100]; printf("enter size of arrayn"); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]);
  • 8. printf("array sum =%d",sum(a,0,n)); } Session-13b) . Write a recursive function called elfish? that, given a word, tells us if that word is elfish or not. #include <stdio.h> int elfish(char *s,char *b, int i) { if(b[i]=='0') return 1; int k,flag=0; for(k=0;s[k]!='0';k++) { if(s[k]==b[i]) { flag=1; break; } } if(flag == 1) return elfish(s,b,i+1); else return 0; } main() { char s[100],b[4]="elf"; int result; printf("enter the stringn"); gets(s); result=elfish(s,b,0); if(result ==0) printf("given string is not elfish"); else printf("given string is elfish"); } Session-14a)Write a recursive function to Find the total number of sequences of length n (using H and T) such that no two Hs are next to each other. #include <stdio.h> int a[20]; int total_seq(int n) { if(n == 1) return 2; if(n ==2) return 3; if(a[n]!=-1 )
  • 9. return a[n]; a[n]=total_seq(n-1)+total_seq(n-2); return a[n]; } main() { int n,i; printf("enter n value"); scanf("%d",&n); for(i=0;i<20;i++) a[i]=-1; printf("n Total number of sequences = %d",total_seq(n)); } Session14 b) Given an array of positive numbers, find the maximum sum of a subsequence with the constraint that no 2 numbers in the sequence should be adjacent in the array. #include<stdio.h> int excl,incl; /*Function to return max sum such that no two elements are adjacent */ int FindMaxSum(int *a, int index, int n) { int temp; if(index == n) return incl; else { temp=incl; if(incl<(excl+a[index])) incl=excl+a[index]; excl = temp; return FindMaxSum(a,index+1,n); } } main() { int n, a[100],i; printf(“enter the number of elementsn”); scanf(“%d”, &n); printf(“enter array elementsn”); for(i=0;i<n;i++) scanf(“%d”, &a[i]); incl = a[0]; excl = 0; printf("nMaximum sum of non- adjacent elements= %d n", FindMaxSum(a,1, n)); }
  • 10. Session-15a) Infix to postfix conversion #include<stdio.h> #include <process.h> #define MAX 50 char stack[MAX]; int top=-1; int getpriority(char); void push(char); char pop(); main() { char infix[50],temp,ch,postfix[50]; int i,j=0; printf("enter the infix expressionn"); scanf("%s",&infix); for(i=0; infix[i] != '0'; i++) { ch=infix[i]; if(ch == '(') push(ch); else if(ch == ')') { while(stack[top]!='(') postfix[j++]=pop(); temp=pop();// popping the ( } else if(isalnum(ch)) postfix[j++]=ch; else { while(getpriority(stack[top])>=getpriority(ch)) postfix[j++]=pop(); push(ch); } } while(top != -1) postfix[j++]=pop(); postfix[j]='0'; puts(postfix); } int getpriority(char ch) { if( ch == '*'|| ch == '/'|| ch == '%') return 2; else if(ch == '+' || ch == '-') return 1; else return 0; }
  • 11. void push(char item) { if(top == MAX-1) { printf("stack is full"); return; } top=top+1; stack[top]=item; } char pop() { if(top == -1) { printf("stack empty"); return; } char temp; temp=stack[top]; top=top-1; return temp; } Evaluating PostFix expression #include<stdio.h> #include <process.h> #include <string.h> #define MAX 50 char stack[MAX]; int top=-1; void push(float); float pop(); void main() { char exp[MAX],temp,ch; int i; float op1,op2,value; printf("Enter an expression : "); gets(exp); for(i=0;i<strlen(exp);i++) { ch=exp[i]; if(isdigit(ch)) push((float)ch-'0'); else {
  • 12. op2=pop(); op1=pop(); switch(ch) { case '+': value=op1+op2; break; case '-': value=op1-op2; break; case '*': value=op1*op2; break; case '/': value=op1/op2; break; case '%': value=(int)op1%(int)op2; break; } push(value); } } printf("n Result=%f",pop()); } void push(float item) { if(top == MAX-1) { printf("stack is full"); return; } top=top+1; stack[top]=item; } float pop() { if(top == -1) { printf("stack empty"); return; }