Tham khảo tài liệu 'programming handbook part 11', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | sinhvien head con trỏ đặc biệt luôn trỏ tới đầu danh sách - Mỗi một phần tử có một con trỏ trỏ đến phần tử tiếp theo. Riêng phần tử cuối cùng con trỏ sẽ trỏ đến một kiểu đặc biệt Kiểu NULL nghĩa là con trỏ đó không trỏ đến một phần tử nào cả . Ban đầu con trỏ danh sách head được gán bằng NULL. - Để cấp phát bộ nhớ ta cần kiểm tra xem có đủ không tránh rối loạn chương trình - Ví dụ define size of sinhvien sinhvien sv sv NULL if sv sinhvien malloc size sv NULL printf không đủ bộ nhớ RAM n getch return - Hàm size of kiểu phần tử cho kích thước của kiểu phần tử bằng byte. sv là con trỏ phụ cần thiết cho các thao tác trong chương trình. size sv có kích thước bằng vùng nhớ một phần tử nhờ sử dụng hàm size of . Cần gán sv NULL đề phòng sinhvien đang trỏ vào một phần tử của danh sách. Khi thêm vào chương trình sẽ tự động tìm vị trí thích hợp của phần tử mới. Do trong ngôn ngữ C không định nghĩa kiểu string như trong PASCAL nên càn dùng hàm so sánh strcmp st1 st2 . Hàm này cho kết quả kiểu int sau khi so sánh st1 và st2 như sau 0 nếu st1 st2. 0 nếu st1 st2. 0 nếu st1 st2. - Các trường hợp xảy ra khi thêm một phần tử vào một danh sách Nếu phần tử mới ở đầu danh sách cần sửa lại con trỏ head. Nếu đã có phần tử đó phải lựa chọn liệu có ghi đè lên không Các trường hợp khác cần sửa lại con trỏ như sau Giả sử cần chèn phần tử mới vào giữa phần tử 1 và 2 ta có - Ví dụ Chương trình qủan lý sinh viên gồm thêm bớt duyệt danh sách tìm kiếm phần tử Chương trình qủan lý sinh viên include include conio. h include include include void taomenu void themsv void timkiem void loaibo void danhsach void vitrihv char st int d tìm vị trí hợp lý void lietke define sizesv size of sinhvien typedef truct sinhvien char hoten 30 int diem struct sinhvien tiep sinhvien sinhvien head sinhvien sv void main clrscr gotoxy 1 12 printf chương trình quản lý danh sách sinh viên DSLK n getch taomenu kết thúc hàm main void taomenu char ch do clrscr printf thêm sinh viên tìm kiếm .