- 链表的定义
- 链表的增删改查
- 静态链表
定义链表
- 定义节点类型
struct node{ int data; node* next; };
- 给链表节点分配内存空间
- malloc C语言中用来申请动态内存的函数:
typename* p = (typename*) malloc(sizeof(typename))
使用结束之后可以通过free() 函数释放内存:free(p)
- new C++中用来申请动态内存的函数:
typename* p = new typename
使用结束之后可以通过delete()来释放空间:delete(p)
- malloc C语言中用来申请动态内存的函数:
- 创建链表
node* create(int Array[]){ node *p,*pre,*head; head = new node; head->next = NULL; pre = head; for(int i = 0;i<5;i++){ p = new node; p->data = Array[i]; p->next = NULL; pre->next = p; pre = p; } return head; }
- 查找节点
int search(node* head,int x){ int count = 0; node* L = head->next; while(L!=NULL){ if(L->data == x) count++; L = L->next; } return count; }
- 插入节点
void insert(node* L,int position, int x){ node* p = new node; p->data = x; node* pos = L; for(int i=0; i<position-1;i++){ pos = pos->next; } p->next = pos->next; pos->next = p; }
- 删除节点
void del(node* head, int x){ node *pre = head; node *p = head->next; while(p!=NULL){ if(p->data == x){ pre->next = p->next; delete(p); p = pre->next; } else{ p = p->next; pre = pre->next; } } }
静态链表
运行时分配内存空间的是动态链表。而提前声明结构体数组来表示的叫做静态链表
静态链表的定义
struct Node{
typename data;
int next;
}node[size];