thưa bà con làng xóm ở ddth hiện tại tui đang tìm hiểu đến phần con trỏ và cấu trúc động trong pascal, lúc bắt đầu mọi việc tỏ ra có vẻ suôn sẻ nhưng khi tôi đọc mấy dòng sau thì đầu óc tôi tự nhiên khép lại chả hiểu gì nữa vậy ai hiểu những dòng này thì giải thích cho tôi hiểu với
Mấy dòng đó như sautui trích trong giáo trình pascal study)
2. Xen vào:

Bây giờ ta xét thêm một thao tác nữa với danh sách được ghép nối : xen một phần tử vào một chỗ mong muốn. Ví dụ xen vào trước phần tử có tên là Hai. Giả thiết rằng ta vẫn dùng các mô tả ở trên và Last là con trỏ trỏ vào phần tử cuối cùng như đã trình bày.

(* To phần tử mới để xen vào *)

New(Q);

Q^.Ten := ' Ba ' ;

Q^.Tuoi := 3 ;

(* Tìm vị trí cần xen *) ;

Ptr := Last ;

While(Ptr <> Nil)and(Ptr.Ten <> ' Hai ') Do

Ptr := Ptr^.Next ;

(* Ghép nối vào chổ cần thiết *) ;

Q.Next := Ptr^.Next ;

Ptr^.Next := Q ;

3. Tháo đi:

Trái ngược với thao tác xen vào là một phần tử ra khỏi danh sách. Ví dụ tháo đi phần tử có tên là Ba. Khi này ta phải dùng Q ngay trong lúc tìm kiếm. Khi tìm xong rồi ta phải tháo trong hai trường hợp khác nhau:

(* Tìm kiếm phần tử cần tháo *)

P := Last ;

While(P <> Nil)and(P^.Ten <> ' Ba ') Do

Begin

Q := P ;

P := P^.Next ;

End ;

(* Tháo đi *)

If P = Last Then Last := P^.Next ;

Else Q^.Next := P^.Next ;

4. Chương trình con dùng biến con trỏ :

Biến con trỏ cũng có thể được đưa vào như là tham số của chương trình con. Ví dụ ta có thể lập mốt chương trình con Xen như sau :

Procedure Xen(Var Q : PointerN);

Begin

...

End ;

Nhu ta đã biết, giá trị kết quả của một Function là kiểu vô hướng. Tuy nhiên ta cũng có thể làm chương trình con kiểu Function có kết quả được mô tả kiểu con trỏ. Ví dụ chương trình con sau được dùng để đảo các con trỏ của một danh sách được ghép nối. Tham số của nó là con trỏ trỏ vào phần tử nằm cuối danh sách, tức là trỏ vào phần tử cuối cùng.

Function Dao(Cuoi : Pointern): PointerN ;

Var

P1, P2 : PointerN ;

Begin

P1 := Cuoi ;

Cuoi := Nil ;

Repeat

P2 := P1^.Next ;

P1^.Next := Cuoi ;

Cuoi := P1 ;

P1 := P2 ;

Until P1 = Nil ;

Dao := Cuoi ;

End ;
thank nhiều !