//Xóa một phần tử ở đầu danh sách đơn SL static void DeleteFirst_S() { if (SL != null) { SL = SL.Next; } }
//Xóa phần tử chứa giá trí x trong danh sách đơn trả về giá trị true nếu xóa được không thì trả về false static bool Remove_S(int x) { if (SL != null) { if (SL.Info == x)//nếu giá trị đầu tiên chứa giá trị x thì thoát { SL = SL.Next; return(true); } else { Node_S Sq = SL; while (Sq.Next != null) { if (Sq.Next.Info == x) { break; } Sq = Sq.Next; }//Sq trỏ phần tử trước phần tử cần xóa if (Sq.Next != null)//Sq trở tới phần tử trước phần tử cần xóa { Sq.Next = Sq.Next.Next; return(true); } } } return(false); }
//Tìm phần từ chứa giá trị x trong danh sách đơn SL không thì trả về null static Node_S Find_S(int x) { Node_S Sq = SL; while (Sq != null) { if (Sq.Info == x) { return(Sq); } Sq = Sq.Next; } return(null); }
//Duyệt in ra toàn bộ danh sách đơn SL static void Traver_S() { if (SL == null) { Console.WriteLine("Danh sach rong"); return; } Node_S Sq = SL;//tạo 1 con trỏ trung gian duyện danh sách SL while (Sq != null) { Console.WriteLine("Info : {0}", Sq.Info); Sq = Sq.Next; } }
static Node_D RL = null; // Initial, RL quản lý danh sách liên kết kép ở phía phải #region Danh sách liên kết đơn SL //Bổ xung một phần tử vào đầu danh sách đơn SL static void AddFirst_S(int x) { Node_S Sp = new Node_S(); /* * Tạo một nút có cấu trúc Node_s được trỏ bởi Sp(nghĩa là đỉa chỉ của node nằm trong con trỏ Sp) * Địa chỉ của node là một số nguyên * Sp là con trỏ, là một biến đặc biệt chứa địa chỉ của biến * Một biến bất kì phải có địa chỉ * Máy tính truy cập theo địa chỉ * để truy cập một biến cần dùng tên biến hoặc địa chỉ của biến * Địa chỉ của biến có thể nằm ở trong con trỏ */ Sp.Info = x;//truy cập(gắn =x) vào trường info của node vừa tạo bằng con trỏ sp Sp.Next = SL; SL = Sp; }
//Xóa một phần từ ở cuối danh sách đơn SL static void DeleteLast_S() { if (SL != null) { if (SL.Next == null) { SL = null; } else { Node_S Sq = SL;//tạo 1 con trỏ trung gian duyện danh sách SL while (Sq.Next.Next != null) { Sq = Sq.Next; } Sq.Next = null; } } }
//Bổ xung một phần tử vào cuối danh sách đơn SL static void AddLast_S(int x) { Node_S Sp = new Node_S(); Sp.Info = x; Sp.Next = null; if (SL == null) { SL = Sp; } else { Node_S Sq = SL;//tạo 1 con trỏ trung gian duyện danh sách SL while (Sq.Next != null) { Sq = Sq.Next; } //Sq trỏ vào phần tử cuối danh sách Sq.Next = Sp; } }
//Xóa toàn bộ danh sách đơn static void Clear_S() { SL = null; }