Вы находитесь на странице: 1из 19

Write a function in C++ to perform Push , Pop, Traversal operation on a static stack containing integer numbers. #include<iostream.

h> void push(int s1[5],int &t) { if(t==4) cout<<"overflow"; else { cout<<"\n enter the element to be inserted \n"; int n; cin>>n; t=t+1; s1[t]=n; } } void pop(int s1[5],int &t) { if(t==-1) cout<<"underflow"; else { cout<<"the element to be deleted : "<<s1[t]<<endl; t=t-1; } } void traversal(int s1[5],int t) { if(t==-1) cout<<"Empty stack"; else { for(int i=t;i>=0;i--) cout<<s1[i]<<"->"; cout<<endl; } } void main() { int stack[5],top=-1; char ch='y'; int choice; do { cout<<"1. push"<<endl; cout<<"2. pop"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: push(stack,top); break;

case 2: pop(stack,top); break; case 3: traversal(stack,top); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); } Write a function in C++ to perform Push , Pop, Traversal operation on a dynamically allocated stack containing real numbers(using class). #include<iostream.h> struct node { float data; node *next; }; class stack { node *top; public: stack() {top=NULL;} void push(); void pop(); void traversal(); }; void stack::push() { node * temp; temp=new node; cout<<"\n enter the data \n"; cin>>temp->data; temp->next=NULL; if(top==NULL) top=temp; else {temp->next=top; top=temp;} } void stack::pop() { node *temp; if(top==NULL) cout<<"underflow"; else { temp=top; cout<<"\n the element deleted is \n"<<temp->data; top=top->next; temp->next=NULL; delete temp; }} void stack::traversal()

{ node *temp; temp=top; if(temp==NULL) cout<<\n stack is empty \n; else { cout<<"\n The stack contents are \n"; while(temp!=NULL) { cout<<temp->data<<"\t"; temp=temp->next; } }} void main() { char ch='y'; int choice; stack s1; do { cout<<"1. push"<<endl; cout<<"2. pop"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: s1.push(); break; case 2: s1.pop(); break; case 3: s1.traversal(); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); } (without class) #include<iostream.h> struct node { float data; node *next; } *top=NULL; void push() { node * temp; temp=new node; cout<<"\n enter the data \n"; cin>>temp->data; temp->next=top; top=temp; } void pop() {

node *temp; if(top==NULL) cout<<"underflow"; else { temp=top; cout<<"\n the element deleted is \n"<<temp->data; top=top->next; temp->next=NULL; delete temp; } } void traversal() { node *temp; temp=top; if(temp==NULL) cout<<"\n stack is empty \n"; else { cout<<"\n The stack contents are \n"; while(temp!=NULL) { cout<<temp->data<<"\t"; temp=temp->next; } }} void main() { char ch='y'; int choice; do { cout<<"1. push"<<endl; cout<<"2. pop"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: push(); break; case 2: pop(); break; case 3: traversal(); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); } Write a function in C++ to perform Insert, delete and traversal operation in a static queue containing integer elements. #include<iostream.h> const int size=5; void insert(int q1[5],int &f,int &r) { if(r==size-1)

cout<<"overflow"; else { cout<<"\n enter the element to be inserted \n"; int n; cin>>n; if(r==-1) f=r=0; else r=r+1; q1[r]=n; } } void delet(int q1[5],int &f,int &r) { if(f==-1) cout<<"underflow"; else { cout<<"the element to be deleted : "<<q1[f]<<endl; if(f==r) f=r=-1; else f=f+1; } } void traversal(int q1[5],int f,int r) { if(f==-1) cout<<"Empty Queue"; else { for(int i=f;i<=r;i++) cout<<q1[i]<<"->"; cout<<endl; } } void main() { int queue[size],front=-1,rear=-1; char ch='y'; int choice; do { cout<<"1. Insert"<<endl; cout<<"2. Delete"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: insert(queue,front,rear); break; case 2: delet(queue,front,rear); break; case 3: traversal(queue,front,rear);

break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); } Write a function in C++ to perform Insert, delete and traversal operation in a dynamically allocated queue containing names of students(with class). #include<iostream.h> #include<stdio.h> struct node { char name[20]; node *next; }; class queue { node *front,*rear; public: queue() {front=rear=NULL;} void insert(); void delet(); void traversal(); }; void queue::insert() { node * temp; temp=new node; cout<<"\n enter the Name \n"; gets(temp->name); temp->next=NULL; if(rear==NULL) front=rear=temp; else { rear->next=temp; rear=temp; }} void queue::delet() { node *temp; if(front==NULL) cout<<"underflow"; else { temp=front; cout<<"\n the element deleted is \n"<<temp->name; if(front==rear) front=rear=NULL; else front=front->next; delete temp; }} void queue::traversal()

{ node *temp; temp=front; if(temp==NULL) cout<<"\n queue is empty \n"; else { cout<<"\n The queue contents are \n"; while(temp!=NULL) { cout<<temp->name<<"\t"; temp=temp->next; }}} void main() { char ch='y'; int choice; queue q1; do { cout<<"1. Insert"<<endl; cout<<"2. Delete"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: q1.insert(); break; case 2: q1.delet(); break; case 3: q1.traversal(); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); }

(without class)
#include<iostream.h> #include<stdio.h> struct node { char name[20]; node *next; }*front=NULL,*rear=NULL; void insert() { node * temp; temp=new node; cout<<"\n enter the Name \n"; gets(temp->name); temp->next=NULL; if(rear==NULL) front=rear=temp; else

rear->next=temp; rear=temp;

}} void delet() { node *temp; if(front==NULL) cout<<"underflow"; else { temp=front; temp->next=NULL; cout<<"\n the element deleted is \n"<<temp->name; front=front->next; if(front==NULL) rear==NULL; delete temp; }} void traversal() { node *temp; temp=front; if(temp==NULL) cout<<"\n queue is empty \n"; else { cout<<"\n The queue contents are \n"; while(temp!=NULL) { cout<<temp->name<<"\t"; temp=temp->next; }}} void main() { char ch='y'; int choice; do { cout<<"1. Insert"<<endl; cout<<"2. Delete"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: insert(); break; case 2: delet(); break; case 3: traversal(); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); }

Circular Queue: Are the queues implemented in circle form rather than a straight line. It overcomes the disadvantage of static queue. Write a function in C++ to perform Insert, delete and traversal operation in a static circular queue containing integer numbers. #include<iostream.h> const int size=5; void insert(int q1[5],int &f,int &r) { if((f==0 && r==(size-1))||(f==r+1)) {cout<<f<<r<<endl; cout<<"overflow";} else { cout<<"\n enter the element to be inserted \n"; int n; cin>>n; if(r==-1) f=r=0; else if (r==size-1) r=0; else r=r+1; q1[r]=n; } } void delet(int q1[5],int &f,int &r) { if(f==-1) cout<<"underflow"; else { cout<<"the element to be deleted : "<<q1[f]<<endl; if(f==r) f=r=-1; else if (f==size-1) f=0; else f=f+1; } } void traversal(int q1[5],int f,int r) { if(f==-1) cout<<"Empty Queue"; else { if(f<=r) { for(int i=f;i<=r;i++) cout<<q1[i]<<"->";

cout<<endl; } else { int i=f; while(i<=size-1) cout<<q1[i++]<<"->"; i=0; while(i<=r) cout<<q1[i++]<<"->"; cout<<endl; } } } void main() { int queue[size],front=-1,rear=-1; char ch='y'; int choice; do { cout<<"1. Insert"<<endl; cout<<"2. Delete"<<endl; cout<<"3. traversal"<<endl; cin>>choice; switch(choice) { case 1: insert(queue,front,rear); break; case 2: delet(queue,front,rear); break; case 3: traversal(queue,front,rear); break; } cout<<"\n Want to continue"; cin>>ch; }while(ch=='y'); } Deque(double ended queues): are the refined queues in which elements can be added or removed at either end but not in the middle. There are two types of deque: (a) Input restricted deque: It allows insertions at only one end but allows deletions at both ends of the list. (b) Output restricted Deque: It allows deletions at only one end of the list but allows insertions at both ends of the list. Insertion in a sorted list
node * insertat(node *first) { node *newptr,*temp,*back; newptr=new node; if(!newptr) { cout<<"Not sufficient Memory"; } cout<<"Enter the age to be inserted\n"; cin>>newptr->data; newptr->next=NULL;

exit(1);

//find the appropriate position if(!first) //list is empty first=newptr; else if(newptr->data<first->data) { temp=first; first=newptr; newptr->next=temp; } else {//find the exact position temp=first; while(temp) { if(newptr->data>temp->data) { back=temp; temp=temp->next; } else { back->next=newptr; newptr->next=temp; break; } } if(!temp) back->next=newptr; } return(first); }

Console I/O Functions:


These are the library functions available for I/O. Its function is to receive input from keyboard and write output to VDU. Console I/O functions can be further classified into two categories: formatted and unformatted console I/O functions. Formatted console I /O functions allow the input read from the keyboard or the output displayed on the VDU to be formatted as per our requirements. Unformatted Functions Type Input Output char getch( ) putch( ) getche( ) putchar( ) getchar( ) string gets( ) puts( ) getch ( ) and getche( )- We often want a function that will read a single character the instant it is typed without waiting for the Enter key to be hit. getch( ) and getche( ) are two functions which server this purpose. The e in getche( ) function means it echoes(displays) the character that you have typed to the screen. getch( ) just returns the character read from the keyboard. getch reads a single character directly from the keyboard, without echoing to the screen.Include the header file <conio.h> for both of them. getchar( )- Gets character from stdin. It works similarly and echoes the character that you typed on the screen, but requires enter key to be pressed following the character you have typed. Include <stdio.h> putchar(char) It outputs (displays) only one character at a time. Include<stdio.h> putch(char)- Outputs character to screen. Include <conio.h> gets( ) and puts( )- gets( ) receives a string from the keyboard (including white spaces). It is terminated when an enter key is hit. gets( ) gets a newline (\n) terminated string of characters from the keyboard and replaces the \n with a \0. puts( ) outputs the string to the screen. Include<stdio.h> for both of them. e.g. puts("puja gupta"); puts("srishti gupta"); Output: puja gupta srishti gupta cout.write("vivek gupta",11); cout.write("manish garg",11); Output: vivek guptamanish garg

iostream.h
Getting Character cin.get(ch) cout.put(ch) Getting String cin.getline(name,80,$) cin.getline(name,80) cout.write(name,80)

stdio.h
char ch=getchar() putchar(ch) char ch=getc(stdin) putc(ch,stdout) gets(name) puts(name)

conio.h
char ch=getch() putch(ch) char ch=getche()

Database Notes for class XII D


Degree: Degree of a table is total number of attributes in a relation. Cardinality: Cardinality of a table is total number of rows(tuple) in a relation. Primary Key: An attribute or set of attributes which are used to uniquely identify a tuple is known as Primary Key. Candidate Key: If a table has more than one such attributes which identify a tuple uniquely than all such attributes are known as candidate Keys. Relation: A relation is a table having atomic values, unique rows and columns. i.e. Data arranged in rows and columns and having certain properties. Foreign key: Non-key attribute , whose values are derived from the primary key of some other table, is known as foreign key in its current table.. Attribute: A column(field) of a relation is termed as an attribute. Alternate Key: A candidate key that is not the primary key is termed as alternate key. Database: It is a collection of interrelated data. Domain: It is a pool of values from which the actual values appearing in a given column are drawn. Tuple: The rows of tables (relations) are generally referred to as tuples. DBMS(Database Management System): It is basically a computer based record keeping system. The advantages provided by a database system are: Reduced data redundancy Controlled data inconsistency Shared data Standardized data Secured data Integrated data Different types of users that work on database systems: A primary goal of database system is to provide an environment for retrieving information from and storing new information into the database. There are three different types of database system users, differentiated by the way they expect to interact with the system. 1. End user: An end user is a person who is not a computer trained person but uses the database to retrieve some information 2. Application system Analyst: This user is concerned about all of the database at logical level i.e. what all data constitutes the database? What are the relationships between the data entities etc. without considering the physical implementation details. 3. Physical storage System Analyst: This user is concerned with the physical implementation details of the database such as which storage device? Which storage technique should be used? Various levels of Data abstraction in a database system: There are 3 levels of abstraction: 1. Internal level(Physical level): This level describes how the data is actually stored on the storage medium. At this level, complex low level data structures are described in details.

2. Conceptual level: This level describe what data are actually stored in the database. It also describes the relationships existing among data. At this level, the database is described logically in terms of simple data structures. 3. External level(View level): This level is concerned with the way the data is viewed by individual users. Only a part of the database relevant to the user(s) is provided to them through this level. Data Independence: The ability to modify a scheme definition in one level without affecting a scheme definition in the next higher level is called Data Independence. There are two levels of data independence. Physical Data Independence: refers to the ability to modify the scheme followed at the physical level without affecting the scheme followed at the conceptual level. That is the application programs remain the same even though the scheme at physical level gets modified (to improve performance of the system). Logical Data Independence: refers to the ability to modify the conceptual scheme without causing any changes in the schemes followed at view levels. Modifications are necessary whenever logical structures of the database get altered because of some unavoidable reasons(for e.g. adding one field in the table) It is more difficult to achieve logical data independence than the physical data independence. The reason being that the application programs are heavily dependent on the logical structure of the database.
View 1 View2 View 3

Conceptual Level

Physical Level

Relation Algebra: It is a collection of operations on relations. Operations include select, project, cartesian product, union, se difference, set intersection, natural join, division etc. Select and project are unary operations since they operate on one relation. The others are binary operations. (a) Select Operation: It selects tuples (horizontal subset) from a relation that satisfy a given condition. Denoted by symbol e.g. price > 14.00 (items) From table items, select the tuples satisfying the condition price >14.00. (b) Project Operation: It yields a vertical subset of a given relation. It lets you select specified attributes in a specified order. The result is also a relation, the duplicating tuples are automatically removed. It is denoted by . e.g supp_name , city (suppliers) from table suppliers project the attributes supp_name and city (c) Cartesian Product: It is a binary operation and is denoted by x. The Cartesian product of two relations A and B is A x B, it yields a new relation which has a degree (no. of attributes) equal to the sum of the degrees of the two relations operated upon. The no. of tuples(cardinality) of the new relation is the product of the number of tuples of the two relations operated upon. The cartesian product of two relations yields a relation with all possible combinations of the tuples of the two relations operated upon. (d) Union Operation: It is a binary operation that requires two operands. It produces the third relation that contains tuples from both the operand relations. It is denoted by . For union to be valid, the following two conditions must be satisfied by the two operands A and B. (i) The relations A and B must be of same degree. That is, they must have the same number of attributes. (ii) The domains of the ith attributes of A and the ith attribute of B must be the same.

(e) Set Difference Operation: It is denoted by symbol (minus) allows us to find tuples that are in one relation but not in another. The expression A B results in a relation containing those tuples in A but not in B. (f) Set Intersection operation- It finds tuples that are common to the two operand relations. It is denoted by . i.e AB will yield a relation having tuples common to A and B. Various Data Models: A data model is a collection of conceptual tools for describing data, data relationships, data semantics etc. There are generally three data models available: relational, network and hierarchical model. (a) Relational Data Model: It represents data and relationships among data by a collection of tables known as relations, each of which has a number of columns with unique names. (b) Network model: The network model represents data by collection of records and relationships among data are represented by links which can be viewed as pointers. The records in the database are organized as collection of arbitrary graphs. (c) Hierarchical model: It is similar to the network model in the sense that data and relationships among data are represented by records and links respectively. It differs from the network model in that the records are organized as collection of trees rather than arbitrary graphs. The relational model differs from the network and hierarchical models in that it does not use pointers or links. Instead, the relational model relates by the values they contain. Views A view is a virtual table that does not really exist in its own right but is instead derived from one or more underlying base table(s). The view is a kind of table whose contents are taken upon other tables depending upon a given query condition. No stored file is created to store the contents of a view rather its definition is stored only. Use: It gives a way to people to access some not all of the information in a table. DDL(Data Definition Language) It provides commands for defining relation schemas, deleting relations, creating indexes and modifying relation schemas. E.g Create Table, Drop table DML(Data manipulation language) It includes a query language to insert, delete and modify tuples in the database and perform complex queries on these tables. . Difference between DDL and DML: DML is used to put values and manipulate them in tables and other database objects and DDL is used to create tables and other database objects. Difference between Drop table and Drop View: Drop Table removes a table from a database. Drop view removes a view from the database but table remains. Difference between WHERE and HAVING clause: The HAVING clause places conditions on groups in contrast to WHERE clause, which places conditions on individual rows. In Having clause we can use aggregate functions whereas in WHERE clause we cannot use aggregate functions.

Stdio.h getc, gets get, putc, putchar, putw, getw , remove, rename, fflush, fopen, fclose, remind, fread, fscanf, fseek, ftell, fwrite

String.h strten, strlwr, strupr, strcpy, strcat, strchr, strcmp, strcmpi

Math.h abs, pow10 sqrt, log10, tan, tanh, frexp, atan, ceil, cabs, cos, exp, floor, log, poly, pow, sin

Stdlib.h exit, atoi, atol, atof, free, itoa ,qsort, randomize, rand, div, abort

ctype.h tolower, isalnum, isdigit, isgraph, ispunct, toascii, toupper

toupper, isascii, iscntrl, islower, isupper, tolower,

#include<iostream.h> const int size=50; void get_array(int a[],int &n) { cout<<"\n enter the number of elelments <=50\n "; cin>>n; cout<<"\n enter the elements \n"; for(int i=0;i<n;i++) cin>>a[i]; } void display_array(int a[],int n) { cout<<" \n The elements are: \n"; for(int i=0;i<n;i++) cout<<a[i]<<'\t'; } void binary_search(int a[],int n) { int beg=0,last=n-1,mid,elem,found=0;; cout<<"\n enter the elemnet to be searched \n"; cin>>elem; while(beg<=last) { mid=(beg+last)/2; if(a[mid]==elem) { cout<<"element found at "<< (mid+1) <<" positon"<<endl; found=1; break; } else { if(elem>a[mid]) beg=mid+1; else last=mid-1; } } if(found==0)

cout<<"\n element not found \n"; } void insert_array(int a[],int &n) { if(n==size) cout<<"\n Sorry! no more elements can be added \n"; else { cout<<"\n Enter the element to be inserted in a sorted array \n"; int elem; cin>>elem; for(int i=0;i<size;i++) if(elem<a[i]) break; int pos=i; int last=n-1; while(last>=pos) { a[last+1]=a[last]; last--; } a[pos]=elem; n++; } } void delete_array(int a[],int &n) { int elem,pos,found=0;; cout<<"\n enter the element to be deleted \n"; cin>>elem; for(int i=0;i<n;i++) { if(elem==a[i]) { found=1; pos=i; break; } } if(found==0) cout<<"\n ellement to de deleted not found \n"; else { while(pos<(n-1)) { a[pos]=a[pos+1]; pos++; } n--; }} void main() { int a[size],n,choice; char ch;

do {

cout<<"\n 1. Get the array \n"; cout<<"\n 2. Binary search \n"; cout<<"\n 3. Insert an element \n"; cout<<"\n 4. delete an element \n"; cout<<"\n 5. Traversal \n"; cout<<"Enter choice: "; cin>>choice; switch(choice) { case 1:get_array(a,n); break; case 2:binary_search(a,n); break; case 3:insert_array(a,n); break; case 4:delete_array(a,n); break; case 5: display_array(a,n); break; } cout<<"\n enter choice (y):"; cin>>ch; }while(ch=='y');}

Вам также может понравиться