SlideShare a Scribd company logo
16
Most read
21
Most read
22
Most read
21CSC201J
DATA STRUCTURES AND
ALGORITHMS
UNIT-1
Topic : Structures
(Structures - Self-referential
structures- Pointers and structures)
Data Types
• C language has built-in datatypes like primary and derived data types.
• But, still not all real world problems can be solved using those data types.
• We need custom datatype for different situation.
Data types are defined as the data storage format that a variable can store a data.
Data types in C
Primary Data type
(int, float, char)
Secondary Data type
Derived Data type
(array, pointer)
User defined Data type
(structure, union, enum)
User Defined Datatype
• We need combination of various datatypes to understand different
entity/object.
• Example-1:
• Book Title: Let Us C Datatype: char / string
Author: Yashavant Kanetkar Datatype: char / string
Page: 320 Datatype: int
Price: 255.00 Datatype: float
• Example-2:
Student Name: ABC Datatype: char / string
Roll_No: 180540107001 Datatype: int
CPI: 7.46 Datatype: float
Backlog: 01 Datatype: int
What is Structure?
•Structure is a collection of logically related data items of different datatypes
grouped together under single name.
•Structure is a user defined datatype.
•Structure helps to build a complex datatype which is more meaningful than
an array.
•But, an array holds similar datatype record, when structure holds different
datatypes records.
•Two fundamental aspects of Structure:
• Declaration of Structure Variable
• Accessing of Structure Member
Syntax to Define Structure
• To define a structure, we need to use struct keyword.
• This keyword is reserved word in C language. We can only use it for structure and its
object declaration.
structure_name is name of custom type
memberN_declaration is individual
member declaration
• Members can be normal variables, pointers, arrays or other structures.
• Member names within the particular structure must be distinct from one another.
struct structure_name
{
member1_declaration;
member2_declaration;
. . .
memberN_declaration;
};
1
2
3
4
5
6
7
Syntax
Example to Define Structure
• You must terminate structure definition with semicolon ;.
• You cannot assign value to members inside the structure definition, it will cause compilation error.
struct student
{
char name[30]; // Student Name
int roll_no; // Student Roll No
float CPI; // Student CPI
int backlog; // Student Backlog
};
1
2
3
4
5
6
7
struct student
{
char name[30] = “ABC”; // Student Name
. . .
};
1
2
3
4
5
Example
Example
Create Structure variable
•A data type defines various properties about data stored in memory.
•To use any type we must declare its variable.
•Hence, let us learn how to create our custom structure type objects also
known as structure variable.
•In C programming, there are two ways to declare a structure variable:
1. Along with structure definition
2. After structure definition
Create Structure Variable – Cont.
1. Declaration along with the structure definition
struct structure_name
{
member1_declaration;
member2_declaration;
. . .
memberN_declaration;
} structure_variable;
1
2
3
4
5
6
7
struct student
{
char name[30]; // Student Name
int roll_no; // Student Roll No
float CPI; // Student CPI
int backlog; // Student Backlog
} student1;
1
2
3
4
5
6
7
Example
Syntax
Create Structure Variable – Cont.
2. Declaration after Structure definition
struct structure_name structure_variable;
1
struct student
{
char name[30]; // Student Name
int roll_no; // Student Roll No
float CPI; // Student CPI
int backlog; // Student Backlog
};
struct student student1; // Declare structure variable
1
2
3
4
5
6
7
8
Example
Syntax
Access Structure member (data)
•Structure is a complex data type, we cannot assign any value directly to it
using assignment operator.
•We must assign data to individual structure members separately.
•C supports two operators to access structure members, using a structure
variable.
1. Dot/period operator (.)
2. Arrow operator (->)
Access Structure member (data) – Cont.
1. Dot/period operator (.)
• It is known as member access operator. We use dot operator to access members of simple structure
variable.
1. Arrow operator (->)
• In C language it is illegal to access a structure member from a pointer to structure variable using dot
operator.
• We use arrow operator to access structure member from pointer to structure.
structure_variable.member_name;
1 // Assign CPI of student1
student1.CPI = 7.46;
1
2
pointer_to_structure->member_name;
1 // Student1 is a pointer to student type
student1 -> CPI = 7.46;
1
2
Syntax
Syntax
Example
Example
#include <stdio.h>
struct student
{
char name[40]; // Student name
int roll; // Student enrollment
float CPI; // Student mobile number
int backlog;
};
int main()
{
struct student student1; // Simple structure variable
// Input data in structure members using dot operator
printf("Enter Student Name:");
scanf("%s", student1.name);
printf("Enter Student Roll Number:");
scanf("%d", &student1.roll);
printf("Enter Student CPI:");
scanf("%f", &student1.CPI);
printf("Enter Student Backlog:");
scanf("%d", &student1.backlog);
// Display data in structure members using dot operator
printf("nStudent using simple structure variable.n");
printf("Student name: %sn", student1.name);
printf("Student Enrollment: %dn", student1.roll);
printf("Student CPI: %fn", student1.CPI);
printf("Student Backlog: %in", student1.backlog);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Enter Student Name:aaa
Enter Student Roll Number:111
Enter Student CPI:7.89
Enter Student Backlog:0
Student using simple structure variable.
Student name: aaa
Student Enrollment: 111
Student CPI: 7.890000
Student Backlog: 0
Program Output
Write a program to read and display student information using structure.
#include<stdio.h>
struct time {
int hours;
int minutes;
int seconds;
};
int main() {
struct time t1,t2;
int h, m, s;
//1st time
printf ("Enter 1st time.");
printf ("nEnter Hours: ");
scanf ("%d",&t1.hours);
printf ("Enter Minutes: ");
scanf ("%d",&t1.minutes);
printf ("Enter Seconds: ");
scanf ("%d",&t1.seconds);
printf ("The Time is
%d:%d:%d",t1.hours,t1.minutes,t1.seconds);
//2nd time
printf ("nnEnter the 2nd time.");
printf ("nEnter Hours: ");
scanf ("%d",&t2.hours);
printf ("Enter Minutes: ");
scanf ("%d",&t2.minutes);
printf ("Enter Seconds: ");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Enter 1st time.
Enter Hours: 1
Enter Minutes: 20
Enter Seconds: 20
The Time is 1:20:20
Enter the 2nd time.
Enter Hours: 2
Enter Minutes: 10
Enter Seconds: 10
The Time is 2:10:10
Sum of the two time's is 3:30:30
Program
Output
Write a program to declare time structure and read two different time period and display sum of it.
scanf ("%d",&t2.seconds);
printf ("The Time is
%d:%d:%d",t2.hours,t2.minutes,t2.secon
ds);
h = t1.hours + t2.hours;
m = t1.minutes + t2.minutes;
s = t1.seconds + t2.seconds;
printf ("nSum of the two time's is
%d:%d:%d",h,m,s);
return 0;
}
27
28
29
30
31
32
33
34
35
36
37
Array of Structure
•It can be defined as the collection of multiple structure variables where each
variable contains information about different entities.
•The array of structures in C are used to store information about multiple
entities of different data types.
struct structure_name
{
member1_declaration;
member2_declaration;
...
memberN_declaration;
} structure_variable[size];
1
2
3
4
5
6
7
Syntax
#include<stdio.h>
struct student {
char name[20];
int rollno;
float cpi;
};
int main( ) {
int i,n;
printf("Enter how many records u want to store : ");
scanf("%d",&n);
struct student sarr[n];
for(i=0; i<n; i++)
{
printf("nEnter %d record : n",i+1);
printf("Enter Name : ");
scanf("%s",sarr[i].name);
printf("Enter RollNo. : ");
scanf("%d",&sarr[i].rollno);
printf("Enter CPI : ");
scanf("%f",&sarr[i].cpi);
}
printf("ntNametRollNotMarkstn");
for(i=0; i<n; i++) {
printf("t%stt%dtt%.2ftn", sarr[i].name,
sarr[i].rollno, sarr[i].cpi);
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Enter how many records u want to store : 3
Enter 1 record :
Enter Name : aaa
Enter RollNo. : 111
Enter CPI : 7.89
Enter 2 record :
Enter Name : bbb
Enter RollNo. : 222
Enter CPI : 7.85
Enter 3 record :
Enter Name : ccc
Enter RollNo. : 333
Enter CPI : 8.56
Name RollNo Marks
aaa 111 7.89
bbb 222 7.85
ccc 333 8.56
Program
Output
Write a program to read and display N student information using array of structure.
#include<stdio.h>
struct Time {
int hours;
int minutes;
int seconds;
};
struct Time input(); // function declaration
int main()
{
struct Time t;
t=input();
printf("Hours : Minutes : Secondsn %d : %d :
%d",t.hours,t.minutes,t.seconds);
return 0;
}
struct Time input() // function definition
{
struct Time tt;
printf ("Enter Hours: ");
scanf ("%d",&tt.hours);
printf ("Enter Minutes: ");
scanf ("%d",&tt.minutes);
printf ("Enter Seconds: ");
scanf ("%d",&tt.seconds);
return tt; // return structure variable
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Enter Hours: 1
Enter Minutes: 20
Enter Seconds: 20
Hours : Minutes : Seconds
1 : 20 : 20
Program
Output
Write a program to declare time structure and read two different time period and display sum of it using function.
Nested Structure
• When a structure contains another structure, it is called nested structure.
• For example, we have two structures named Address and Student. To make Address nested to
Student, we have to define Address structure before and outside Student structure and create an
object of Address structure inside Student structure.
struct structure_name1
{
member1_declaration;
member2_declaration;
...
memberN_declaration;
};
struct structure_name2
{
member1_declaration;
member2_declaration;
...
struct structure1 obj;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Syntax
#include<stdio.h>
struct Address
{
char HouseNo[25];
char City[25];
char PinCode[25];
};
struct Student
{
char name[25];
int roll;
float cpi;
struct Address Add;
};
int main()
{
int i;
struct Student s;
printf("ntEnter Student Name : ");
scanf("%s",s.name);
printf("ntEnter Student Roll Number : ");
scanf("%d",&s.roll);
printf("ntEnter Student CPI : ");
scanf("%f",&s.cpi);
printf("ntEnter Student House No : ");
scanf("%s",s.Add.HouseNo);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Details of Students
Student Name : aaa
Student Roll Number : 111
Student CPI : 7.890000
Student House No : 39
Student City : rajkot
Student Pincode : 360001
Program
Output
Write a program to read and display student information using nested of structure.
printf("ntEnter Student City : ");
scanf("%s",s.Add.City);
printf("ntEnter Student Pincode : ");
scanf("%s",s.Add.PinCode);
printf("nDetails of Students");
printf("ntStudent Name : %s",s.name);
printf("ntStudent Roll Number :
%d",s.roll);
printf("ntStudent CPI : %f",s.cpi);
printf("ntStudent House No :
%s",s.Add.HouseNo);
printf("ntStudent City :
%s",s.Add.City);
printf("ntStudent Pincode :
%s",s.Add.PinCode);
return 0;
}
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Self referential structures
• Self referential Structures are those structures that contain a reference to data of its
same type. i.e in addition to other data a self referential structure contains a pointer
to a data that it of the same type as that of the structure. For example: consider the
structure node given as follows:
struct node
{
int val;
struct node *next;
};
• Here the structure node will contain two types of data an integer val and next which
is a pointer a node. Self referential structure is the foundation of other data
structures.
• Such kinds of structures are used in different data structures such as to define the
nodes of linked lists, trees, etc.
#include <stdio.h>
typedef struct str {
int mem1;
int mem2;
struct str* next;
}str;
int main()
{
str var1 = { 1, 2, NULL };
str var2 = { 10, 20, NULL };
var1.next = &var2;
str *ptr1 = &var1;
printf("var2.mem1: %dnvar2.mem2: %d", ptr1->next->
mem1, ptr1->next->mem2);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var2.mem1: 10
var2.mem2: 20
Program
Output
Write a program to read and display student information using nested of structure.
Structure Pointer
•We can define a pointer that points to the structure like any other variable.
•Such pointers are generally called Structure Pointers.
•We can access the members of the structure pointed by the structure pointer
using the ( -> ) arrow operator.
•Reference/address of structure object is passed as function argument to the
definition of function.
Structure using Pointer
#include <stdio.h>
struct student {
char name[20];
int rollno;
float cpi;
};
int main()
{
struct student *studPtr, stud1;
studPtr = &stud1;
printf("Enter Name: ");
scanf("%s", studPtr->name);
printf("Enter RollNo: ");
scanf("%d", &studPtr->rollno);
printf("Enter CPI: ");
scanf("%f", &studPtr->cpi);
printf("nStudent Details:n");
printf("Name: %sn", studPtr->name);
printf("RollNo: %d", studPtr->rollno);
printf(”nCPI: %f", studPtr->cpi);
return 0;
}
Enter Name: ABC
Enter RollNo: 121
Enter CPI: 7.46
Student Details:
Name: ABC
RollNo: 121
CPI: 7.460000
Program Output
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

More Related Content

Similar to Data Structure & Algorithm - Self Referential (20)

PPTX
Structure in C language
CGC Technical campus,Mohali
 
PPTX
User defined data types.pptx
Ananthi Palanisamy
 
PPTX
Basic of Structure,Structure members,Accessing Structure member,Nested Struct...
Smit Shah
 
PPTX
CA2_CYS101_31184422012_Arvind-Shukla.pptx
ArvindShukla81
 
PPT
Unit4 (2)
mrecedu
 
PPTX
Engineering Computers - L29-Structures.pptx
happycocoman
 
PPTX
detail structure presentation of problem solving
talencorconsultancy
 
DOC
Unit 5 (1)
psaravanan1985
 
PPTX
ECE2102-Week13 - 14-Strhhhhhhhjjjucts.pptx
mahmoud2005rare
 
PPTX
Unit-V.pptx
Mehul Desai
 
PPT
structure.ppt
Sheik Mohideen
 
PPTX
Structures and Unions
Vijayananda Ratnam Ch
 
PPTX
Address, Pointers, Arrays, and Structures2.pptx
Dr. Amna Mohamed
 
PPTX
data structure and c programing concepts
kavitham66441
 
PPTX
Structures
DrJasmineBeulahG
 
PPTX
programming in C and Datastructures deepdive
Sangeetha Prakash
 
PDF
programming in C & Data structures an easy approach
Sangeetha Prakash
 
PPTX
Structure and Union .pptx program in C with detailed example
kiruthikancse
 
PPTX
Module 5-Structure and Union
nikshaikh786
 
PPTX
Structures in C.pptx
Boni Yeamin
 
Structure in C language
CGC Technical campus,Mohali
 
User defined data types.pptx
Ananthi Palanisamy
 
Basic of Structure,Structure members,Accessing Structure member,Nested Struct...
Smit Shah
 
CA2_CYS101_31184422012_Arvind-Shukla.pptx
ArvindShukla81
 
Unit4 (2)
mrecedu
 
Engineering Computers - L29-Structures.pptx
happycocoman
 
detail structure presentation of problem solving
talencorconsultancy
 
Unit 5 (1)
psaravanan1985
 
ECE2102-Week13 - 14-Strhhhhhhhjjjucts.pptx
mahmoud2005rare
 
Unit-V.pptx
Mehul Desai
 
structure.ppt
Sheik Mohideen
 
Structures and Unions
Vijayananda Ratnam Ch
 
Address, Pointers, Arrays, and Structures2.pptx
Dr. Amna Mohamed
 
data structure and c programing concepts
kavitham66441
 
Structures
DrJasmineBeulahG
 
programming in C and Datastructures deepdive
Sangeetha Prakash
 
programming in C & Data structures an easy approach
Sangeetha Prakash
 
Structure and Union .pptx program in C with detailed example
kiruthikancse
 
Module 5-Structure and Union
nikshaikh786
 
Structures in C.pptx
Boni Yeamin
 

More from babuk110 (7)

PPTX
Deployment Models-Internet of things Materials
babuk110
 
PDF
Data Structure & Algorithms - Operations
babuk110
 
PDF
Data Structure & Algorithms - Mathematical
babuk110
 
PDF
Data Structure - Dynamic Memory Allocation
babuk110
 
PDF
Data Structure & Algorithms - Introduction
babuk110
 
PDF
Data Structure & Algorithms - Matrix Multiplication
babuk110
 
PDF
Data structure & Algorithms - Programming in C
babuk110
 
Deployment Models-Internet of things Materials
babuk110
 
Data Structure & Algorithms - Operations
babuk110
 
Data Structure & Algorithms - Mathematical
babuk110
 
Data Structure - Dynamic Memory Allocation
babuk110
 
Data Structure & Algorithms - Introduction
babuk110
 
Data Structure & Algorithms - Matrix Multiplication
babuk110
 
Data structure & Algorithms - Programming in C
babuk110
 
Ad

Recently uploaded (20)

PDF
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
 
PPTX
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
 
PPTX
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
PPTX
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
PPTX
Work at Height training for workers .pptx
cecos12
 
PDF
01-introduction to the ProcessDesign.pdf
StiveBrack
 
PPTX
Introduction to Python Programming Language
merlinjohnsy
 
PDF
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
PDF
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
محمد قصص فتوتة
 
PPTX
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
 
PDF
How to Buy Verified CashApp Accounts IN 2025
Buy Verified CashApp Accounts
 
PDF
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
PDF
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Mark Billinghurst
 
PDF
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
 
PDF
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
PPTX
Functions in Python Programming Language
BeulahS2
 
PDF
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
PPTX
Mobile database systems 20254545645.pptx
herosh1968
 
PPTX
Computer network Computer network Computer network Computer network
Shrikant317689
 
PDF
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
 
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
 
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
 
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
 
Work at Height training for workers .pptx
cecos12
 
01-introduction to the ProcessDesign.pdf
StiveBrack
 
Introduction to Python Programming Language
merlinjohnsy
 
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
 
تقرير عن التحليل الديناميكي لتدفق الهواء حول جناح.pdf
محمد قصص فتوتة
 
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
 
How to Buy Verified CashApp Accounts IN 2025
Buy Verified CashApp Accounts
 
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Mark Billinghurst
 
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
 
Generative AI & Scientific Research : Catalyst for Innovation, Ethics & Impact
AlqualsaDIResearchGr
 
Functions in Python Programming Language
BeulahS2
 
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Mark Billinghurst
 
Mobile database systems 20254545645.pptx
herosh1968
 
Computer network Computer network Computer network Computer network
Shrikant317689
 
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
 
Ad

Data Structure & Algorithm - Self Referential

  • 1. 21CSC201J DATA STRUCTURES AND ALGORITHMS UNIT-1 Topic : Structures (Structures - Self-referential structures- Pointers and structures)
  • 2. Data Types • C language has built-in datatypes like primary and derived data types. • But, still not all real world problems can be solved using those data types. • We need custom datatype for different situation. Data types are defined as the data storage format that a variable can store a data. Data types in C Primary Data type (int, float, char) Secondary Data type Derived Data type (array, pointer) User defined Data type (structure, union, enum)
  • 3. User Defined Datatype • We need combination of various datatypes to understand different entity/object. • Example-1: • Book Title: Let Us C Datatype: char / string Author: Yashavant Kanetkar Datatype: char / string Page: 320 Datatype: int Price: 255.00 Datatype: float • Example-2: Student Name: ABC Datatype: char / string Roll_No: 180540107001 Datatype: int CPI: 7.46 Datatype: float Backlog: 01 Datatype: int
  • 4. What is Structure? •Structure is a collection of logically related data items of different datatypes grouped together under single name. •Structure is a user defined datatype. •Structure helps to build a complex datatype which is more meaningful than an array. •But, an array holds similar datatype record, when structure holds different datatypes records. •Two fundamental aspects of Structure: • Declaration of Structure Variable • Accessing of Structure Member
  • 5. Syntax to Define Structure • To define a structure, we need to use struct keyword. • This keyword is reserved word in C language. We can only use it for structure and its object declaration. structure_name is name of custom type memberN_declaration is individual member declaration • Members can be normal variables, pointers, arrays or other structures. • Member names within the particular structure must be distinct from one another. struct structure_name { member1_declaration; member2_declaration; . . . memberN_declaration; }; 1 2 3 4 5 6 7 Syntax
  • 6. Example to Define Structure • You must terminate structure definition with semicolon ;. • You cannot assign value to members inside the structure definition, it will cause compilation error. struct student { char name[30]; // Student Name int roll_no; // Student Roll No float CPI; // Student CPI int backlog; // Student Backlog }; 1 2 3 4 5 6 7 struct student { char name[30] = “ABC”; // Student Name . . . }; 1 2 3 4 5 Example Example
  • 7. Create Structure variable •A data type defines various properties about data stored in memory. •To use any type we must declare its variable. •Hence, let us learn how to create our custom structure type objects also known as structure variable. •In C programming, there are two ways to declare a structure variable: 1. Along with structure definition 2. After structure definition
  • 8. Create Structure Variable – Cont. 1. Declaration along with the structure definition struct structure_name { member1_declaration; member2_declaration; . . . memberN_declaration; } structure_variable; 1 2 3 4 5 6 7 struct student { char name[30]; // Student Name int roll_no; // Student Roll No float CPI; // Student CPI int backlog; // Student Backlog } student1; 1 2 3 4 5 6 7 Example Syntax
  • 9. Create Structure Variable – Cont. 2. Declaration after Structure definition struct structure_name structure_variable; 1 struct student { char name[30]; // Student Name int roll_no; // Student Roll No float CPI; // Student CPI int backlog; // Student Backlog }; struct student student1; // Declare structure variable 1 2 3 4 5 6 7 8 Example Syntax
  • 10. Access Structure member (data) •Structure is a complex data type, we cannot assign any value directly to it using assignment operator. •We must assign data to individual structure members separately. •C supports two operators to access structure members, using a structure variable. 1. Dot/period operator (.) 2. Arrow operator (->)
  • 11. Access Structure member (data) – Cont. 1. Dot/period operator (.) • It is known as member access operator. We use dot operator to access members of simple structure variable. 1. Arrow operator (->) • In C language it is illegal to access a structure member from a pointer to structure variable using dot operator. • We use arrow operator to access structure member from pointer to structure. structure_variable.member_name; 1 // Assign CPI of student1 student1.CPI = 7.46; 1 2 pointer_to_structure->member_name; 1 // Student1 is a pointer to student type student1 -> CPI = 7.46; 1 2 Syntax Syntax Example Example
  • 12. #include <stdio.h> struct student { char name[40]; // Student name int roll; // Student enrollment float CPI; // Student mobile number int backlog; }; int main() { struct student student1; // Simple structure variable // Input data in structure members using dot operator printf("Enter Student Name:"); scanf("%s", student1.name); printf("Enter Student Roll Number:"); scanf("%d", &student1.roll); printf("Enter Student CPI:"); scanf("%f", &student1.CPI); printf("Enter Student Backlog:"); scanf("%d", &student1.backlog); // Display data in structure members using dot operator printf("nStudent using simple structure variable.n"); printf("Student name: %sn", student1.name); printf("Student Enrollment: %dn", student1.roll); printf("Student CPI: %fn", student1.CPI); printf("Student Backlog: %in", student1.backlog); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Enter Student Name:aaa Enter Student Roll Number:111 Enter Student CPI:7.89 Enter Student Backlog:0 Student using simple structure variable. Student name: aaa Student Enrollment: 111 Student CPI: 7.890000 Student Backlog: 0 Program Output Write a program to read and display student information using structure.
  • 13. #include<stdio.h> struct time { int hours; int minutes; int seconds; }; int main() { struct time t1,t2; int h, m, s; //1st time printf ("Enter 1st time."); printf ("nEnter Hours: "); scanf ("%d",&t1.hours); printf ("Enter Minutes: "); scanf ("%d",&t1.minutes); printf ("Enter Seconds: "); scanf ("%d",&t1.seconds); printf ("The Time is %d:%d:%d",t1.hours,t1.minutes,t1.seconds); //2nd time printf ("nnEnter the 2nd time."); printf ("nEnter Hours: "); scanf ("%d",&t2.hours); printf ("Enter Minutes: "); scanf ("%d",&t2.minutes); printf ("Enter Seconds: "); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Enter 1st time. Enter Hours: 1 Enter Minutes: 20 Enter Seconds: 20 The Time is 1:20:20 Enter the 2nd time. Enter Hours: 2 Enter Minutes: 10 Enter Seconds: 10 The Time is 2:10:10 Sum of the two time's is 3:30:30 Program Output Write a program to declare time structure and read two different time period and display sum of it. scanf ("%d",&t2.seconds); printf ("The Time is %d:%d:%d",t2.hours,t2.minutes,t2.secon ds); h = t1.hours + t2.hours; m = t1.minutes + t2.minutes; s = t1.seconds + t2.seconds; printf ("nSum of the two time's is %d:%d:%d",h,m,s); return 0; } 27 28 29 30 31 32 33 34 35 36 37
  • 14. Array of Structure •It can be defined as the collection of multiple structure variables where each variable contains information about different entities. •The array of structures in C are used to store information about multiple entities of different data types. struct structure_name { member1_declaration; member2_declaration; ... memberN_declaration; } structure_variable[size]; 1 2 3 4 5 6 7 Syntax
  • 15. #include<stdio.h> struct student { char name[20]; int rollno; float cpi; }; int main( ) { int i,n; printf("Enter how many records u want to store : "); scanf("%d",&n); struct student sarr[n]; for(i=0; i<n; i++) { printf("nEnter %d record : n",i+1); printf("Enter Name : "); scanf("%s",sarr[i].name); printf("Enter RollNo. : "); scanf("%d",&sarr[i].rollno); printf("Enter CPI : "); scanf("%f",&sarr[i].cpi); } printf("ntNametRollNotMarkstn"); for(i=0; i<n; i++) { printf("t%stt%dtt%.2ftn", sarr[i].name, sarr[i].rollno, sarr[i].cpi); } return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Enter how many records u want to store : 3 Enter 1 record : Enter Name : aaa Enter RollNo. : 111 Enter CPI : 7.89 Enter 2 record : Enter Name : bbb Enter RollNo. : 222 Enter CPI : 7.85 Enter 3 record : Enter Name : ccc Enter RollNo. : 333 Enter CPI : 8.56 Name RollNo Marks aaa 111 7.89 bbb 222 7.85 ccc 333 8.56 Program Output Write a program to read and display N student information using array of structure.
  • 16. #include<stdio.h> struct Time { int hours; int minutes; int seconds; }; struct Time input(); // function declaration int main() { struct Time t; t=input(); printf("Hours : Minutes : Secondsn %d : %d : %d",t.hours,t.minutes,t.seconds); return 0; } struct Time input() // function definition { struct Time tt; printf ("Enter Hours: "); scanf ("%d",&tt.hours); printf ("Enter Minutes: "); scanf ("%d",&tt.minutes); printf ("Enter Seconds: "); scanf ("%d",&tt.seconds); return tt; // return structure variable } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Enter Hours: 1 Enter Minutes: 20 Enter Seconds: 20 Hours : Minutes : Seconds 1 : 20 : 20 Program Output Write a program to declare time structure and read two different time period and display sum of it using function.
  • 17. Nested Structure • When a structure contains another structure, it is called nested structure. • For example, we have two structures named Address and Student. To make Address nested to Student, we have to define Address structure before and outside Student structure and create an object of Address structure inside Student structure. struct structure_name1 { member1_declaration; member2_declaration; ... memberN_declaration; }; struct structure_name2 { member1_declaration; member2_declaration; ... struct structure1 obj; }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Syntax
  • 18. #include<stdio.h> struct Address { char HouseNo[25]; char City[25]; char PinCode[25]; }; struct Student { char name[25]; int roll; float cpi; struct Address Add; }; int main() { int i; struct Student s; printf("ntEnter Student Name : "); scanf("%s",s.name); printf("ntEnter Student Roll Number : "); scanf("%d",&s.roll); printf("ntEnter Student CPI : "); scanf("%f",&s.cpi); printf("ntEnter Student House No : "); scanf("%s",s.Add.HouseNo); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Details of Students Student Name : aaa Student Roll Number : 111 Student CPI : 7.890000 Student House No : 39 Student City : rajkot Student Pincode : 360001 Program Output Write a program to read and display student information using nested of structure. printf("ntEnter Student City : "); scanf("%s",s.Add.City); printf("ntEnter Student Pincode : "); scanf("%s",s.Add.PinCode); printf("nDetails of Students"); printf("ntStudent Name : %s",s.name); printf("ntStudent Roll Number : %d",s.roll); printf("ntStudent CPI : %f",s.cpi); printf("ntStudent House No : %s",s.Add.HouseNo); printf("ntStudent City : %s",s.Add.City); printf("ntStudent Pincode : %s",s.Add.PinCode); return 0; } 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
  • 19. Self referential structures • Self referential Structures are those structures that contain a reference to data of its same type. i.e in addition to other data a self referential structure contains a pointer to a data that it of the same type as that of the structure. For example: consider the structure node given as follows: struct node { int val; struct node *next; }; • Here the structure node will contain two types of data an integer val and next which is a pointer a node. Self referential structure is the foundation of other data structures. • Such kinds of structures are used in different data structures such as to define the nodes of linked lists, trees, etc.
  • 20. #include <stdio.h> typedef struct str { int mem1; int mem2; struct str* next; }str; int main() { str var1 = { 1, 2, NULL }; str var2 = { 10, 20, NULL }; var1.next = &var2; str *ptr1 = &var1; printf("var2.mem1: %dnvar2.mem2: %d", ptr1->next-> mem1, ptr1->next->mem2); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 var2.mem1: 10 var2.mem2: 20 Program Output Write a program to read and display student information using nested of structure.
  • 21. Structure Pointer •We can define a pointer that points to the structure like any other variable. •Such pointers are generally called Structure Pointers. •We can access the members of the structure pointed by the structure pointer using the ( -> ) arrow operator. •Reference/address of structure object is passed as function argument to the definition of function.
  • 22. Structure using Pointer #include <stdio.h> struct student { char name[20]; int rollno; float cpi; }; int main() { struct student *studPtr, stud1; studPtr = &stud1; printf("Enter Name: "); scanf("%s", studPtr->name); printf("Enter RollNo: "); scanf("%d", &studPtr->rollno); printf("Enter CPI: "); scanf("%f", &studPtr->cpi); printf("nStudent Details:n"); printf("Name: %sn", studPtr->name); printf("RollNo: %d", studPtr->rollno); printf(”nCPI: %f", studPtr->cpi); return 0; } Enter Name: ABC Enter RollNo: 121 Enter CPI: 7.46 Student Details: Name: ABC RollNo: 121 CPI: 7.460000 Program Output 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22