Singly Linked List With Header
Jump to navigation
Jump to search
Linked List แบบทางเดียว แบบมี header ด้วย (Header node คือ node ที่ไม่เก็บค่าจริงๆ เป็นตัวเริ่มต้นแค่นั้น)
#include<stdio.h>
typedef int DType;
typedef struct node{
DType data;
struct node *next;
}node;
node* createList(){
node *header = (node*)malloc(sizeof(node));
header -> next = NULL;
}
void insert(node *pos, DType val){ // INSERT AFTER pos
node *temp = (node*)malloc(sizeof(node));
temp->data = val;
temp->next = pos->next;
pos->next = temp;
}
void erase(node *header, DType val){ // ERASE val THAT IS IN linked lists
node *temp = header;
while(temp->next != NULL){
if(temp->next->data == val){
node *del = temp->next;
temp->next = temp->next->next;
free(del);
break;
}
}
}
int main(){
node *header = createList();
insert(header,15);
printf("%d\n",header->next->data);
erase(header,15);
if(header->next == NULL) printf("NULL\n");
else printf("NOT NULL\n");
scanf(" ");
return 0;
}