Các thao tác trên danh sách liên kết đơn(single-link list)
2.Con trỏ tới 1 node
3.Cấp phát bộ nhớ cho 1 node
4.Giải phóng 1 node
5.Thêm phần tử vào đỉnh danh sách
6.Thêm node mới vào cuối danh sách
7.Thêm node mới vào giữa danh sách
8.Xóa 1 node đầu danh sách
9.Xóa node cuối danh sách
10.Xóa node giữa danh sách
Ngoài ra các thao tác duyệt danh sách, tìm kiếm trên danh sách...(mình sẽ giới thiệu sau)
chúc các bạn thành công :v
[You must be registered and logged in to see this link.]#source-code
- Code:
//c
struct tq {
thtin_t phantu;
struc tq*tiep;
};
typedef struct tq tq_t;
2.Con trỏ tới 1 node
- Code:
//c
struct node {
int infor;
struct node *next;
};
typedef struct node *NODEPTR;
3.Cấp phát bộ nhớ cho 1 node
- Code:
//c
NODEPTR Getnode(void) {
NODEPTR p;
P = (NODEPTR) malloc(sizeof( struct node));
Return(p);
}
4.Giải phóng 1 node
- Code:
//c
NODEPTR Freenode( NODEPTR p){
free(p);
}
5.Thêm phần tử vào đỉnh danh sách
- Code:
//c
void Push_Top( NODEPTR *plist, int x) {
NODEPTR p;
p= Getnode();
p -> infor = x;
p ->next = *plist;
*plist = p;
}
6.Thêm node mới vào cuối danh sách
- Code:
//c
void Push_Bottom( NODEPTR *plist, int x) {
NODEPTR p, q;
p= Getnode(); //
p->infor = x;
q = *plist;
while (q-> next != NULL)
q = q -> next;
q -> next = p;
p ->next = NULL;
}
7.Thêm node mới vào giữa danh sách
- Code:
//c
void Push_Before( NODEPTR p, int x ){
NODEPTR q;
if (p->next==NULL)
Push_Bottom(p, x);
else {
q= Getnode();
q -> infor = x;
q-> next = p-> next;
p->next = q;
}
}
8.Xóa 1 node đầu danh sách
- Code:
//c
void Del_Top( NODEPTR *plist) {
NODEPTR p;
p = *plist;
if (p==NULL) return;
(*plist) = (*plist) -> next;
p-> next = NULL;
Freenode(p);
}
9.Xóa node cuối danh sách
- Code:
//c
void Del_Bottom(NODEPTR *plist) {
NODEPTR p, q;
if (*plist==NULL) return;
else if ( (*plist)->next==NULL))
Del_Top(plist);
else {
p = *plist;
while (p->next!=NULL){
q = p;
p = p->next;
}
// p lµ node cuèi danh s¸ch;
q->next =NULL;
Freenode(p);
}
}
10.Xóa node giữa danh sách
- Code:
//c
void Del_before(NODEPTR p){
NODEPTR q;
if (p->next==NULL) return;
q = p ->next;
p->next = q->next;
Freenode(q);
}
Ngoài ra các thao tác duyệt danh sách, tìm kiếm trên danh sách...(mình sẽ giới thiệu sau)
chúc các bạn thành công :v
[You must be registered and logged in to see this link.]#source-code