[CTDL & Thuật Toán] Thêm phần tử vào Vị trí bất kỳ

Giả sử chúng ta cần chèn một nút mới(NewNode) vào giữa nút K (nút trái) và G (nút phải).
1.Đầu tiên, ta khai báo NewNode
+Đổ dữ liệu vào trường Data của NewNode
+cho con trỏ Next của nó trỏ vào Node kế tiếp của k ( NodeMoi->next = k->next;)
2.Sau đó cho con trỏ next của k trỏ vào NewNode (k->Next = newnode).
void Them_VT_BatKy(DanhSach &DS,int k,SinhVien x) { if (k<1 || k>DodaiDS(DS)) printf("Vi tri Thêm khong hop le !"); if(k==1) //neu la vi tri dau==>chen vao dau { ThemDau(DS,x); } else //chen vao vi tri [k !=1,k->n] { //vi tri KHAC k-1 thi duoc duyet, DUYET DEN VI TRI =K-1 thi DUNG VONG LAP NODE *T = DS.NodeDAU;//luc dau,Node T dang o vi tri DAU DS for (int i = 1; i !=k-1; i++){ T = T->next; }//KET THUC VONG LAP,Node T Dang O VI TRI thu K-1 trong DS //TAO 1 NODE MOI VA GAN GIA TRI NODE *NodeMoi = new NODE; NodeMoi->data = x; NodeMoi->next = T->next;//NodeMoi lk voi node sau vi tri k (T[next]) T->next = NodeMoi;//Node tai vi tri K lien ket voi NodeMoi } }