SlideShare a Scribd company logo
‫ھیاكل‬
‫البیانات‬
data Structures
Week
7
Lecturer Dr. Khaled A. O. Zidane
GS203
‫سبها‬ ‫جــــــــامعة‬
‫المعلومــ‬ ‫تقنية‬‫كليـــة‬
‫ات‬
Sebha University
Faculty of Information
Technology
❖
‫المتصلة‬ ‫القوائم‬
‫المرتبطة‬ ‫أو‬
Linked List
o
‫باستخدام‬ ‫الديناميكي‬ ‫التخصيص‬
‫المؤشرات‬
‫املحاضرة‬ ‫محتويات‬
•
‫قمنا‬
‫في‬
‫المحاضرات‬
‫السابقة‬
‫بدراسة‬
‫العمليات‬
‫على‬
‫المصفوفات‬
(
Arrays
)
‫وطرق‬
‫تطبيقها‬
‫كعمل‬
‫المكدسات‬
(
Stacks
)
‫وطوابير‬
‫البيانات‬
(
Queues
)
.
‫وتعرفنا‬
‫ان‬
‫أحد‬
‫أكثر‬
‫عيوب‬
‫المصفوفة‬

‫المصفوفات‬
‫هي‬
‫أنها‬
‫بنية‬
‫بيانات‬
،‫ثابتة‬
‫أي‬
‫يجب‬
‫معر‬
‫فة‬
‫السعة‬
‫القصوى‬
‫للمصفوفة‬
‫قبل‬
‫عملية‬
‫التجميع‬
(
‫بمعني‬
‫ان‬
‫طول‬
‫المصفوفة‬
‫ال‬
‫يتغي‬
‫ر‬
‫طوال‬
‫فترة‬
‫تنفيذ‬
‫البرنامج‬
)
.
‫لذلك‬
،
‫يجب‬
‫علينا‬
‫تحديد‬
‫حجمها‬
‫صراحة‬
‫قبل‬
‫التجميع‬
.
‫من‬
‫الناحية‬
‫العملية‬
،
‫فإن‬
‫تحديد‬
‫مثل‬
‫هذه‬
‫األحجام‬
‫الثابتة‬
‫قبل‬
‫تجميع‬
‫البرنامج‬
‫يقلل‬
‫من‬
‫ا‬
‫الستخدام‬
‫الفعال‬
‫لمساحة‬
‫الذاكرة‬
.
•
‫القائمة‬
‫المرتبطة‬
‫او‬
‫المتصلة‬
(
Linked List
)
‫هي‬
‫الحل‬
‫األنسب‬
‫للتغلب‬
‫على‬
‫كل‬
‫هذه‬
‫المشاكل‬
.
‫فالقائمة‬
‫مرتبطة‬
‫وباستخدام‬
‫إدارة‬
‫الذاكرة‬
‫الديناميكية‬
‫تتبع‬
‫هذا‬
‫المب‬
‫دأ‬
-
‫تخصيص‬
‫واستخدام‬
‫الذاكرة‬
‫عندما‬
‫تحتاج‬
‫إليها‬
‫وتحريرها‬
(
free or deallocate
)
‫عند‬
‫االنتهاء‬
.
‫تمهيد‬
❖
‫يلي‬ ‫كما‬ ‫هي‬ ‫بيانات‬ ‫كهيكل‬ ‫للمصفوفات‬ ‫المختلفة‬ ‫المزايا‬
:
•
‫المصفوفات‬
‫هي‬
‫األنسب‬
‫لتخزين‬
‫كمية‬
‫ثابتة‬
‫من‬
‫البيانات‬
‫ا‬ً‫ض‬‫وأي‬
‫للتكرار‬
‫السترجاع‬
‫البيانات‬
‫حيث‬
‫يمكن‬
‫الوصول‬
‫إلى‬
‫البيانات‬
‫مباشرة‬
.
•
‫المصفوفات‬
‫من‬
‫بين‬
‫هياكل‬
‫البيانات‬
‫األكثر‬
‫إحكاما‬
.
‫إذا‬
‫قمنا‬
‫بتخزين‬
100
‫عدد‬
‫صحيح‬
‫في‬
،‫مصفوفة‬
‫فإننا‬
‫تشغل‬
‫مساحة‬
‫تعادل‬
100
‫عدد‬
‫صحيح‬
،‫فقط‬
‫وليس‬
‫أكثر‬
.
•
‫المصفوفات‬
‫معروفة‬
‫ًا‬‫د‬‫جي‬
‫في‬
‫تطبيقات‬
‫مثل‬
‫البحث‬
‫وجداول‬
‫التجزئة‬
‫والفرز‬
.
•
‫يتم‬
‫التعامل‬
‫مع‬
‫القوائم‬
«
‫البيانات‬
»
‫المرتبة‬
‫مثل‬
‫كثيرات‬
‫الحدود‬
‫بكفاءة‬
‫باستخدام‬
‫المصفوفات‬
.
•
‫تعتبر‬
‫المصفوفات‬
‫مفيدة‬
‫لتشكيل‬
‫األساس‬
‫للعديد‬
‫من‬
‫هياكل‬
‫البيانات‬
‫المعقدة‬
‫مثل‬
‫الجداول‬
‫المجزئة‬
‫ويمكن‬
‫استخدامها‬
‫لتمثيل‬
‫السالسل‬
‫والمكدسات‬
‫وقوائم‬
‫االنتظار‬
.
❖
‫العيوب‬
‫المختلفة‬
‫للمصفوفات‬
‫كهيكل‬
‫بيانات‬
‫هي‬
‫كما‬
‫يلي‬
:
•
‫توفر‬
‫المصفوفات‬
‫إدارة‬
‫ذاكرة‬
‫ثابتة‬
.
‫ومن‬
،‫ثم‬
‫أثناء‬
،‫التنفيذ‬
‫يمكن‬
‫للحجم‬
‫ال‬
‫يزيد‬
‫وال‬
‫ينقص‬
.
‫و‬
‫هناك‬
‫حل‬
‫لمعالجة‬
‫المش‬
‫كلة‬
‫وهو‬
‫أي‬
‫التصريح‬
‫عن‬
‫مصفوفة‬
‫بحجم‬
‫أكبر‬
.
‫هذا‬
‫يؤدي‬
‫إلى‬
‫مشكلتين‬
‫أخريين‬
:
(
‫أ‬
)
‫في‬
،‫المستقبل‬
‫إذا‬
‫كان‬
‫المستخدم‬
‫ال‬
‫يزال‬
‫بحاجة‬
‫إلى‬
‫تجاوز‬
‫هذا‬
،‫الحد‬
‫فهذا‬
‫غير‬
‫ممكن‬
.
(
‫ب‬
)
‫كلما‬
‫زاد‬
‫الحد‬
،‫األقصى‬
‫زاد‬
‫هدر‬
‫الذاكرة‬
‫ألنه‬
‫في‬
‫كثير‬
‫من‬
‫هذه‬
‫المواقع‬
‫غير‬
‫مستخدمة‬
‫ال‬
‫تزال‬
‫مخصصة‬
(
‫محجوزة‬
)
‫للبرنامج‬
.
‫هذا‬
‫يؤدي‬
‫لسوء‬
‫استخدام‬
‫المساحة‬
.
•
‫المصفوفة‬
‫غير‬
‫فعالة‬
‫عندما‬
‫يتم‬
‫إدراج‬
‫البيانات‬
‫أو‬
‫حذفها‬
‫كإدراج‬
‫أو‬
‫حذف‬
‫يحتاج‬
‫العنصر‬
‫في‬
‫المصفوفة‬
‫إلى‬
‫قدر‬
‫كب‬
‫ير‬
‫من‬
‫حركة‬
‫البيانات‬
.
•
‫من‬
‫العيوب‬
‫الناتجة‬
‫عن‬
‫بساطة‬
‫المصفوفات‬
‫إمكانية‬
‫اإلشارة‬
‫إلى‬
‫عنصر‬
‫غير‬
‫موجود‬
‫باستخدام‬
‫فهرس‬
‫خارج‬
‫النطاق‬
‫الصا‬
‫لح‬
.
‫ُعرف‬‫ي‬
‫هذا‬
‫باسم‬
‫التجاوز‬
‫حدود‬
‫المصفوفة‬
(
Exceeding the Array Bounds
)
.
‫والنتيجة‬
‫هي‬
‫برنامج‬
‫يعمل‬
‫مع‬
‫بيانات‬
‫غير‬
‫صحيحة‬
.
‫في‬
‫أسوأ‬
‫األحوال‬
،‫الحالة‬
‫يمكن‬
‫أن‬
‫يتعطل‬
‫النظام‬
‫بأكمله‬
.
‫في‬
++
C
،‫مثال‬
‫البنية‬
‫القوية‬
‫عرضة‬
‫لألسف‬
‫لهذا‬
‫النوع‬
‫من‬
‫الخطأ‬
.
‫تحتوي‬
‫بعض‬
‫اللغات‬
‫على‬
‫حدود‬
‫مضمنة‬
‫للتحقق‬
‫وال‬
‫تفهرس‬
‫مصفوفة‬
‫خارج‬
‫النطاق‬
‫المسموح‬
•
‫القائمة‬
‫المرتبطة‬
(Linked List)
‫هي‬
‫بنية‬
‫بيانات‬
‫ديناميكية‬
‫فعالة‬
‫للغاية‬
‫للقوا‬
‫ئم‬
‫الخطية‬
‫و‬
‫ت‬
‫ستخدم‬
‫لتمثيل‬
‫مجموعة‬
‫من‬
‫العناصر‬
‫المرتبطة‬
‫ا‬ً‫ع‬‫م‬
.
‫وتتكون‬
‫القا‬
‫ئمة‬
‫المرتبطة‬
‫من‬
‫عناصر‬
‫تسمى‬
‫العقد‬
(Node)
،
‫وكل‬
‫عقد‬
‫يحتوي‬
‫على‬
‫بيانات‬
‫ورابط‬
(Pointer)
‫إلى‬
‫العقد‬
‫التالي‬
‫في‬
‫القائمة‬
.
•
‫يمكن‬
‫إضافة‬
‫العناصر‬
‫أو‬
‫حذفها‬
‫منه‬
‫في‬
‫أي‬
‫موضع‬
‫بسهولة‬
‫أكبر‬
‫مقارنة‬
‫بالمصفوفات‬
.
‫ال‬
‫يحتاج‬
‫المبرمج‬
‫إلى‬
‫القلق‬
‫بشأن‬
‫عدد‬
‫عناصر‬
‫البيانات‬
‫التي‬
‫س‬
‫يتعين‬
‫على‬
‫البرنامج‬
.
‫أي‬
‫تمكن‬
‫المبرمج‬
‫من‬
‫االستفادة‬
‫الفعالة‬
‫من‬
‫الذاكرة‬
،
‫ألنها‬
‫تعم‬
‫ل‬
‫على‬
‫مبدأ‬
‫الحاجة‬
‫والعرض‬
.
‫هذا‬
‫يقلل‬
‫من‬
‫صيانة‬
‫البرنامج‬
.
‫القائمة‬
‫المتصلة‬
Linked List
‫القائمة‬
‫المتصلة‬
Linked List
•
‫الديناميكي‬ ‫التخصيص‬
‫باس‬ ‫التشغيل‬ ‫وقت‬ ‫في‬ ‫الذاكرة‬ ‫مساحة‬ ‫تخصيص‬ ‫هو‬
‫عامل‬ ‫تخدام‬
‫التشغيل‬
«
‫المؤشر‬
pointer
»
‫عمل‬ ‫طريقة‬ ‫على‬ ‫التعرف‬ ‫من‬ ‫فالبد‬ ‫الجديد‬
‫المؤشرات‬
pointers
.
C++ Data Types
Structured
array struct union class
Address
pointer reference
Simple
Integral Floating
char short int long enum
float double long double
‫المؤشر‬ ‫هو‬ ‫ما‬
pointer
‫؟‬
‫المؤشر‬
‫هو‬
‫ببساطة‬
‫عنوان‬
‫كائن‬
«
Object
»
‫في‬
‫الذاكرة‬
.
‫بشكل‬
‫عام‬
،
‫يمكن‬
‫الوصول‬
‫إلى‬
‫الكائنات‬
‫بطريقتين‬
:
‫مباشرة‬
‫من‬
‫خالل‬
‫اسمها‬
‫الرمزي‬
،
‫أو‬
‫بشكل‬
‫غير‬
‫مباشر‬
‫من‬
‫خالل‬
‫مؤشر‬
pointer
.
Pointer ‫المؤشرات‬
•
‫العنوان‬ ‫معامل‬
(
&
)
‫عندما‬
‫نصرح‬
‫عن‬
‫متغ‬
‫ي‬
‫ي‬ً‫ف‬ ‫يخزن‬ٌ‫س‬ ‫فإنه‬ ‫ر‬
‫إحدى‬
‫ي‬ً‫ف‬ ‫المتاحة‬ ‫األماكن‬
‫بشكل‬ ‫الذاكرة‬
‫ي‬ً‫ل‬‫آ‬
‫م‬
‫قبل‬ ‫ن‬
‫المترجم‬
‫التشغيل‬ ‫ونظام‬
,
‫هذا‬ ‫ن‬ٌ‫تخز‬ ‫مكان‬ ‫معرفة‬ ‫أردنا‬ ‫فإذا‬
‫المتغ‬
‫ي‬
‫ر‬
‫اسم‬ ‫نسبق‬
‫المتغ‬
‫ي‬
‫ر‬
‫بال‬
‫رمز‬
&
.
‫التعليمة‬ ‫مثال‬
&a
•
‫معامل‬
‫المرجع‬
) * (
‫سبقنا‬ ‫إذا‬
‫المتغير‬
a
‫بمعامل‬
‫المرجع‬
*
‫إذا‬ ‫أي‬
‫كتبنا‬
a
*
‫فإن‬
‫العبارة‬
;
c = *a
‫ي‬ً‫ن‬‫تع‬
‫ضع‬
‫يمة‬ٌ‫ق‬‫ال‬
‫اليها‬ ُ‫ٌر‬‫ش‬ُ‫ؤ‬‫ٌي‬ ‫ي‬ً‫ت‬‫ال‬
a
‫المتغير‬ ‫ي‬ً‫ف‬
c
.
‫يجب‬ ٌٌ
‫ٌن‬‫ب‬ ‫الفرق‬ ‫إلى‬ ‫االنتباه‬
‫العبارتين‬
c = a; // c == 1176
c = *a; // c = =25
b == 25
&b == 1776
a == 1776
*a == 25
*a == b
‫التصريح‬
‫عن‬
‫المؤشرات‬
•
‫الشكل‬
‫العام‬
‫يح‬ٌ‫للتصر‬
‫هو‬
type * pointer_name;
:type
‫نوع‬ ‫هو‬
‫س‬ٌ‫ل‬‫و‬ ‫المؤشر‬ ‫يها‬ٌ‫ل‬‫إ‬ ‫ير‬ٌ‫ش‬‫ي‬ٌ‫س‬ ‫ي‬ً‫ت‬‫ال‬ ‫ٌيانات‬‫ب‬‫ال‬
‫نوع‬
‫المؤشر‬
‫ذاته‬
.
pointer_name
‫المؤشر‬ ‫اسم‬
int* ptr; // int ‫عنوان‬ ptr ‫سيحمل‬
char* q; // q will hold the address of a char
‫أو‬
‫يلي‬ ‫كما‬
:
int *ptr;
int a = 23, b,c;
‫أن‬ ‫يعلن‬ ‫هذا‬
ptr
‫متغير‬ ‫ليكون‬
(
‫شير‬ُ‫ت‬
‫لى‬
)
‫صحيح‬ ‫لمتغير‬ ‫لعنوان‬
.
‫أمثلة‬
:
int * number;
char * character;
float * greatnumber;
9
‫مثال‬
:
‫استخدام‬
‫المؤشر‬ ‫متغير‬
int x;
x = 12;
int* ptr;
ptr = &x;
‫مالحظة‬
:
‫ألن‬
ptr
‫عنوان‬ ‫يحمل‬
x
،
‫نقول‬
‫أن‬
ptr
‫إلى‬ ‫يشير‬
x
2000
12
x
3000
2000
ptr
10
2000
12
x
3000
2000
ptr
int x;
x = 12;
int* ptr;
ptr = &x;
cout<<*ptr;
•
‫مالحظة‬
:
‫بواسطة‬ ‫إليها‬ ‫المشار‬ ‫القيمة‬ ‫إلى‬ ‫اإلشارة‬ ‫يتم‬
ptr
*
‫العامل‬
‫األحادي‬
*
‫التشغيل‬ ‫عامل‬ ‫هو‬
(
‫المباشر‬ ‫غير‬
)
11
int x;
x = 12;
int *ptr;
ptr = &x;
*ptr = 5; // changes the value
// at address ptr to 5
‫عامل‬ ‫استخدام‬
‫مختلف‬ ‫التشغيل‬
2000
12 5
x
3000
2000
ptr
12
char ch;
ch = ‘A’;
char* q;
q = &ch;
*q = ‘Z’;
char* p;
p = q; // the right side has value 4000
// now p and q both point to ch
‫اخر‬ ‫مثال‬
4000
A Z
ch
5000 6000
4000 4000
q p
‫استخدام‬
‫جديد‬ ‫مشغل‬
13
•
‫المخزن‬ ‫تسمى‬ ‫منطقة‬ ‫في‬ ‫متوفرة‬ ‫الذاكرة‬ ‫كانت‬ ‫إذا‬
‫الفارغ‬
free store
(
‫أو‬
Heap
.)
•
‫فإن‬
‫العامل‬
‫الجديد‬
‫يخصص‬
‫الكائن‬
‫أو‬
‫المصفوفة‬
‫المطلوبة‬
،
‫ويعي‬
‫د‬
‫المؤشر‬
‫إلى‬
(
‫عنوان‬
)
‫الذاكرة‬
‫المخصصة‬
.
‫وإال‬
،
‫يتم‬
‫إرجاع‬
‫المؤشر‬
‫الفارغ‬
0
.
‫الكائن‬
‫المخصص‬
‫موجود‬
‫حتى‬
‫يدمره‬
‫عامل‬
‫الحذف‬
.
14
2000
ptr
Dynamically Allocated Data
char* ptr;
ptr = new char;
*ptr = ‘B’;
std::cout << *ptr;
15
Dynamically Allocated Data
char* ptr;
ptr = new char;
*ptr = ‘B’;
std::cout << *ptr;
NOTE: Dynamic data has no variable name
2000
ptr
16
Dynamically Allocated Data
char* ptr;
ptr = new char;
*ptr = ‘B’;
cout << *ptr;
NOTE: Dynamic data has no variable name
2000
ptr
‘B’
17
Dynamically Allocated Data
char *ptr;
ptr = new char;
*ptr = ‘B’;
cout << *ptr;
delete ptr;
2000
ptr
NOTE: Delete deallocates the
memory pointed to by ptr.
?
‫وهو‬
‫أن‬
‫يتم‬
‫إلغاء‬
(
deallocate
)
‫تخصيص‬
‫الكائن‬
‫أو‬
‫المصفوفة‬
‫المشار‬
‫إليها‬
‫ا‬ً‫ي‬‫حال‬
‫بواسطة‬
،‫المؤشر‬
‫ويعتبر‬
‫المؤشر‬
‫غير‬
‫مخصص‬
.
‫يتم‬
‫إرجاع‬
‫الذاكرة‬
‫إلى‬
free store
.
delete ‫الحذف‬ ‫مشغل‬ ‫استخدام‬
18
‫المؤشرات‬ ‫استخدام‬ ‫عند‬ ‫العمليات‬ ‫أولوية‬
Some C++ pointer operations
Precedence
Higher -> Select member of class pointed to
++ -- ! * new delete
Increment, Decrement, NOT, Dereference, Allocate, Deallocate
+ - Add Subtract
< <= > >= Relational operators
== != Tests for equality, inequality
Lower = Assignment
20
‫تخصيص‬
‫الديناميكي‬
‫للمصفوفة‬
char *ptr; // ptr is a pointer variable that
// can hold the address of a char
ptr = new char[ 5 ];
// dynamically, during run time, allocates
// memory for 5 characters and places into
// the contents of ptr their beginning address
ptr
6000
6000
21
‫للمصفوفة‬ ‫الديناميكي‬ ‫تخصيص‬
#include <iostream>
#include <cstring>
int main() {
char *ptr ;
ptr =new char[5];
strcpy(ptr,"Bye" ); // a pointer can be subscripted
std::cout<< ptr[1] ;
return 0;}
ptr
6000
6000 ‘B’ ‘y’ ‘e’ ‘0’
22
char *ptr ;
ptr = new char[ 5 ];
strcpy( ptr, “Bye” );
ptr[ 1 ] = ‘u’;
delete ptr; // deallocates array pointed to by ptr
// ptr itself is not deallocated, but
// the value of ptr is considered unassigned
ptr
?
‫للمصفوفة‬ ‫الديناميكي‬ ‫تخصيص‬
ptr
6000
‘B’ ‘y’ ‘e’ ‘0’
‘u’
23
int* ptr = new int;
*ptr = 3;
ptr = new int; // changes value of ptr
*ptr = 4;
‫التالي‬ ‫المثل‬ ‫في‬ ‫يحدث‬ ‫ماذا‬
3
ptr
3
ptr
4
24
‫ذاكرة‬ ‫تسريب‬
Memory Leak
‫هو‬
‫نوع‬
‫من‬
‫االستهالك‬
‫غير‬
‫المتعمد‬
‫للذاكرة‬
‫المؤقتة‬
“
ram"
.
‫ويحدث‬
‫تسرب‬
‫للذاكرة‬
‫عندما‬
‫يتم‬
‫ترك‬
‫المتغير‬
‫الذى‬
‫تم‬
‫إنشاؤه‬
‫باستخدام‬
‫عامل‬
‫التشغ‬
‫يل‬
‫الجديد‬
‫فى‬
‫الذاكرة‬
‫الديناميكية‬
(
‫التي‬
)
‫بدون‬
‫مؤشر‬
‫إليها‬
‫بواسطة‬
‫المبرمج‬
،
‫وب‬
‫التالي‬
‫يتعذر‬
‫الوصول‬
‫إليها‬
.
int* ptr = new int;
*ptr = 8;
int* ptr2 = new int;
*ptr2 = -5;
‫المنال؟‬ ‫بعيد‬ ‫كائن‬ ‫يصبح‬ ‫أن‬ ‫يمكن‬ ‫كيف‬
8
ptr
-5
ptr2
25
‫التسبب‬
‫تسرب‬ ‫في‬
‫الذاكرة‬
int* ptr = new int;
*ptr = 8;
int* ptr2 = new int;
*ptr2 = -5;
ptr = ptr2; // here the 8 becomes inaccessible
8
-5
8
-5
ptr
ptr2
ptr
ptr2
26
•
‫مؤشر‬
‫المعلق‬
‫هو‬
‫مؤشر‬
(
‫غير‬
NULL
)
‫الذي‬
‫يشير‬
‫إلى‬
‫منطقة‬
‫ذاكرة‬
‫غير‬
‫مخصصة‬
(
‫تم‬
‫تحريرها‬
‫بالفعل‬
)
.
•
‫ال‬ ‫تطبيق‬ ‫ويتم‬ ‫الكائن‬ ‫نفس‬ ‫إلى‬ ‫مؤشران‬ ‫يشير‬ ‫عندما‬ ‫يحدث‬
‫على‬ ‫حذف‬
‫أحدهما‬
.
Dangling Pointer ‫المعلق‬ ‫المؤشر‬
27
int* ptr = new int;
*ptr = 8;
int* ptr2 = new int;
*ptr2 = -5;
ptr = ptr2;
delete ptr2; // ptr is left dangling
ptr2 = NULL;
Dangling Pointer ‫المعلق‬ ‫المؤشر‬
8
ptr
-5
ptr2
8
ptr
NULL
ptr2
FOR EXAMPLE,
‫مؤشر‬
‫مؤشر‬ ‫هو‬ ‫المعلق‬
(
‫غير‬
NULL
)
‫مخصصة‬ ‫غير‬ ‫ذاكرة‬ ‫منطقة‬ ‫إلى‬ ‫يشير‬ ‫الذي‬
(
‫بالفعل‬ ‫تحريرها‬ ‫تم‬
.)
‫يحدث‬ ‫أي‬
‫أحدهما‬ ‫على‬ ‫الحذف‬ ‫تطبيق‬ ‫ويتم‬ ‫الكائن‬ ‫نفس‬ ‫إلى‬ ‫مؤشران‬ ‫يشير‬ ‫عندما‬
.
28
The NULL Pointer
‫وإنه‬
‫خطأ‬
‫عندما‬
‫يكون‬
‫المؤشر‬
‫له‬
‫قيمة‬
NULL
.
‫قد‬
‫يتسبب‬
‫هذا‬
‫الخطأ‬
‫في‬
‫تعطل‬
،‫البرنامج‬
‫أو‬
‫التصرف‬
‫بشكل‬
‫غير‬
‫صحيح‬
.
‫إنها‬
‫مهمة‬
‫المبرمج‬
‫للتحقق‬
‫من‬
‫ذلك‬
.
while (ptr != NULL)
{
. . . // ok to use *ptr here
} ‫وظيفة‬ ‫أو‬ ‫كائن‬ ‫أي‬ ‫إلى‬ ‫يشير‬ ‫ال‬ ‫مؤشر‬ ‫هو‬
.
‫فراغ‬ ‫وقيمته‬ false .

More Related Content

Similar to java programming language - Lecture7.pdf (20)

6 arrays
6 arrays6 arrays
6 arrays
Bint EL-maghrabi
 
[C++ Tutorial] #6- Pointers
[C++ Tutorial] #6- Pointers [C++ Tutorial] #6- Pointers
[C++ Tutorial] #6- Pointers
Ghadeer AlHasan
 
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثانيأسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
Hanaa Ahmed
 
4- Arrays
4-  Arrays4-  Arrays
4- Arrays
Ghadeer AlHasan
 
Visual programming in c# part1
Visual programming in c# part1Visual programming in c# part1
Visual programming in c# part1
batoolhisham
 
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
khawagah
 
Chapter 2: array and array list data structure
Chapter 2: array and array list  data structureChapter 2: array and array list  data structure
Chapter 2: array and array list data structure
Mahmoud Alfarra
 
[C++ Tutorial] #8 Files
[C++ Tutorial] #8 Files[C++ Tutorial] #8 Files
[C++ Tutorial] #8 Files
Ghadeer AlHasan
 
C++ arabic
C++ arabicC++ arabic
C++ arabic
sma_alomar
 
Algorithms and Data Structure 2020
Algorithms and Data Structure 2020Algorithms and Data Structure 2020
Algorithms and Data Structure 2020
Joud Khattab
 
First chapter
First chapterFirst chapter
First chapter
Amin Alam
 
نماذج أسئلة مراجعة للصف الثالث الإعدادي
نماذج أسئلة مراجعة للصف الثالث الإعدادينماذج أسئلة مراجعة للصف الثالث الإعدادي
نماذج أسئلة مراجعة للصف الثالث الإعدادي
Hanaa Ahmed
 
الوحدة السادسة - قاعدة البيانات وادارتها
الوحدة السادسة - قاعدة البيانات وادارتهاالوحدة السادسة - قاعدة البيانات وادارتها
الوحدة السادسة - قاعدة البيانات وادارتها
Amin Abu Hammad
 
lec3visualbasic2010lec3visualbasic2010.ppt
lec3visualbasic2010lec3visualbasic2010.pptlec3visualbasic2010lec3visualbasic2010.ppt
lec3visualbasic2010lec3visualbasic2010.ppt
redagerges2006
 
pythonForKids_LearnAboutProgramming.pptx
pythonForKids_LearnAboutProgramming.pptxpythonForKids_LearnAboutProgramming.pptx
pythonForKids_LearnAboutProgramming.pptx
SallyGhosn
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
Ragia Ibrahim
 
C# languge(ar)C#.netالابحار في لغة
C# languge(ar)C#.netالابحار في لغة C# languge(ar)C#.netالابحار في لغة
C# languge(ar)C#.netالابحار في لغة
NoureddineHassi
 
[C++ Tutorial] #6- Pointers
[C++ Tutorial] #6- Pointers [C++ Tutorial] #6- Pointers
[C++ Tutorial] #6- Pointers
Ghadeer AlHasan
 
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثانيأسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
أسئلة وإجابتها علي منهج الصف الثالث الاعدادي فصل دراسي ثاني
Hanaa Ahmed
 
Visual programming in c# part1
Visual programming in c# part1Visual programming in c# part1
Visual programming in c# part1
batoolhisham
 
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
Computer school-books-3rd-preparatory-2nd-term-khawagah-2019
khawagah
 
Chapter 2: array and array list data structure
Chapter 2: array and array list  data structureChapter 2: array and array list  data structure
Chapter 2: array and array list data structure
Mahmoud Alfarra
 
Algorithms and Data Structure 2020
Algorithms and Data Structure 2020Algorithms and Data Structure 2020
Algorithms and Data Structure 2020
Joud Khattab
 
First chapter
First chapterFirst chapter
First chapter
Amin Alam
 
نماذج أسئلة مراجعة للصف الثالث الإعدادي
نماذج أسئلة مراجعة للصف الثالث الإعدادينماذج أسئلة مراجعة للصف الثالث الإعدادي
نماذج أسئلة مراجعة للصف الثالث الإعدادي
Hanaa Ahmed
 
الوحدة السادسة - قاعدة البيانات وادارتها
الوحدة السادسة - قاعدة البيانات وادارتهاالوحدة السادسة - قاعدة البيانات وادارتها
الوحدة السادسة - قاعدة البيانات وادارتها
Amin Abu Hammad
 
lec3visualbasic2010lec3visualbasic2010.ppt
lec3visualbasic2010lec3visualbasic2010.pptlec3visualbasic2010lec3visualbasic2010.ppt
lec3visualbasic2010lec3visualbasic2010.ppt
redagerges2006
 
pythonForKids_LearnAboutProgramming.pptx
pythonForKids_LearnAboutProgramming.pptxpythonForKids_LearnAboutProgramming.pptx
pythonForKids_LearnAboutProgramming.pptx
SallyGhosn
 
C# languge(ar)C#.netالابحار في لغة
C# languge(ar)C#.netالابحار في لغة C# languge(ar)C#.netالابحار في لغة
C# languge(ar)C#.netالابحار في لغة
NoureddineHassi
 

More from fatmaolowa (10)

Algorithms_Design_powerPoint_slide9.pptx
Algorithms_Design_powerPoint_slide9.pptxAlgorithms_Design_powerPoint_slide9.pptx
Algorithms_Design_powerPoint_slide9.pptx
fatmaolowa
 
Algorithms_Design_powerPoint_slides.pptx
Algorithms_Design_powerPoint_slides.pptxAlgorithms_Design_powerPoint_slides.pptx
Algorithms_Design_powerPoint_slides.pptx
fatmaolowa
 
GS301 2023-java programming language lecture 1 _ .pptx
GS301 2023-java programming language lecture 1  _ .pptxGS301 2023-java programming language lecture 1  _ .pptx
GS301 2023-java programming language lecture 1 _ .pptx
fatmaolowa
 
data structure using c++ programmingppt
data structure using  c++ programmingpptdata structure using  c++ programmingppt
data structure using c++ programmingppt
fatmaolowa
 
java programming language- lecture3.pptx
java programming language- lecture3.pptxjava programming language- lecture3.pptx
java programming language- lecture3.pptx
fatmaolowa
 
java programming language- lecture8 (1).pptx
java programming language- lecture8 (1).pptxjava programming language- lecture8 (1).pptx
java programming language- lecture8 (1).pptx
fatmaolowa
 
java programming language- lecture9 (1).pptx
java programming language- lecture9 (1).pptxjava programming language- lecture9 (1).pptx
java programming language- lecture9 (1).pptx
fatmaolowa
 
data structure using c++ language- Lecture6.pdf
data structure using c++ language- Lecture6.pdfdata structure using c++ language- Lecture6.pdf
data structure using c++ language- Lecture6.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
JAVA LANGUAGE PROGRAMMING  - Lecture4.pdfJAVA LANGUAGE PROGRAMMING  - Lecture4.pdf
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
JAVA LANGUAGE PROGRAMMING - lecture 2  .pptxJAVA LANGUAGE PROGRAMMING - lecture 2  .pptx
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
fatmaolowa
 
Algorithms_Design_powerPoint_slide9.pptx
Algorithms_Design_powerPoint_slide9.pptxAlgorithms_Design_powerPoint_slide9.pptx
Algorithms_Design_powerPoint_slide9.pptx
fatmaolowa
 
Algorithms_Design_powerPoint_slides.pptx
Algorithms_Design_powerPoint_slides.pptxAlgorithms_Design_powerPoint_slides.pptx
Algorithms_Design_powerPoint_slides.pptx
fatmaolowa
 
GS301 2023-java programming language lecture 1 _ .pptx
GS301 2023-java programming language lecture 1  _ .pptxGS301 2023-java programming language lecture 1  _ .pptx
GS301 2023-java programming language lecture 1 _ .pptx
fatmaolowa
 
data structure using c++ programmingppt
data structure using  c++ programmingpptdata structure using  c++ programmingppt
data structure using c++ programmingppt
fatmaolowa
 
java programming language- lecture3.pptx
java programming language- lecture3.pptxjava programming language- lecture3.pptx
java programming language- lecture3.pptx
fatmaolowa
 
java programming language- lecture8 (1).pptx
java programming language- lecture8 (1).pptxjava programming language- lecture8 (1).pptx
java programming language- lecture8 (1).pptx
fatmaolowa
 
java programming language- lecture9 (1).pptx
java programming language- lecture9 (1).pptxjava programming language- lecture9 (1).pptx
java programming language- lecture9 (1).pptx
fatmaolowa
 
data structure using c++ language- Lecture6.pdf
data structure using c++ language- Lecture6.pdfdata structure using c++ language- Lecture6.pdf
data structure using c++ language- Lecture6.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
JAVA LANGUAGE PROGRAMMING  - Lecture4.pdfJAVA LANGUAGE PROGRAMMING  - Lecture4.pdf
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
JAVA LANGUAGE PROGRAMMING - lecture 2  .pptxJAVA LANGUAGE PROGRAMMING - lecture 2  .pptx
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
fatmaolowa
 
Ad

Recently uploaded (10)

الإختبارات الاتلافية.12234456677899009988
الإختبارات الاتلافية.12234456677899009988الإختبارات الاتلافية.12234456677899009988
الإختبارات الاتلافية.12234456677899009988
ssuserefc16b
 
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptxSaint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Martin M Flynn
 
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
DrMohamedHusseinMoha
 
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdfالميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
huseeinbader
 
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdfالاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
أنور غني الموسوي
 
learning arabic for non native تعليم_العربية_لغير_الناطقين_بها.pptx
learning arabic for non native  تعليم_العربية_لغير_الناطقين_بها.pptxlearning arabic for non native  تعليم_العربية_لغير_الناطقين_بها.pptx
learning arabic for non native تعليم_العربية_لغير_الناطقين_بها.pptx
Ryan Shaputra
 
مؤتمر القمة السنوية 2025.pdf في دبي دكتورة رانيا مدحت
مؤتمر القمة السنوية 2025.pdf  في دبي  دكتورة رانيا مدحتمؤتمر القمة السنوية 2025.pdf  في دبي  دكتورة رانيا مدحت
مؤتمر القمة السنوية 2025.pdf في دبي دكتورة رانيا مدحت
DrMohamedHusseinMoha
 
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلامكتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
huseeinbader
 
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptxنظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
mohmedalgathy
 
الميّسر في تبسيط عهد الامام علي لمالك الاشتر
 الميّسر في تبسيط عهد الامام علي لمالك الاشتر الميّسر في تبسيط عهد الامام علي لمالك الاشتر
الميّسر في تبسيط عهد الامام علي لمالك الاشتر
huseeinbader
 
الإختبارات الاتلافية.12234456677899009988
الإختبارات الاتلافية.12234456677899009988الإختبارات الاتلافية.12234456677899009988
الإختبارات الاتلافية.12234456677899009988
ssuserefc16b
 
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptxSaint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Saint Anthony of Padua and Lisbon (1195 - 1231)..pptx
Martin M Flynn
 
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
كيف تدعم التكنولوجيا رحلة تعلم وتعليم التربية الإسلامية؟ _ نحو تعليم إسلامي ع...
DrMohamedHusseinMoha
 
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdfالميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
الميسّر في تبسيط عهد الامام علي لمالك الأشتر.pdf
huseeinbader
 
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdfالاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
الاربعون في المرجع الديني الاعلى من جهة التعين والحكم .pdf
أنور غني الموسوي
 
learning arabic for non native تعليم_العربية_لغير_الناطقين_بها.pptx
learning arabic for non native  تعليم_العربية_لغير_الناطقين_بها.pptxlearning arabic for non native  تعليم_العربية_لغير_الناطقين_بها.pptx
learning arabic for non native تعليم_العربية_لغير_الناطقين_بها.pptx
Ryan Shaputra
 
مؤتمر القمة السنوية 2025.pdf في دبي دكتورة رانيا مدحت
مؤتمر القمة السنوية 2025.pdf  في دبي  دكتورة رانيا مدحتمؤتمر القمة السنوية 2025.pdf  في دبي  دكتورة رانيا مدحت
مؤتمر القمة السنوية 2025.pdf في دبي دكتورة رانيا مدحت
DrMohamedHusseinMoha
 
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلامكتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
كتاب الوهفة في شرح دعاء عرفة للإمام علي بن الحسين عليهما السلام
huseeinbader
 
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptxنظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
نظام سداد الرسوم والتحصيلات العامه الحكومية Zakat_App_Presentation.pptx
mohmedalgathy
 
الميّسر في تبسيط عهد الامام علي لمالك الاشتر
 الميّسر في تبسيط عهد الامام علي لمالك الاشتر الميّسر في تبسيط عهد الامام علي لمالك الاشتر
الميّسر في تبسيط عهد الامام علي لمالك الاشتر
huseeinbader
 
Ad

java programming language - Lecture7.pdf