// 链表
// 创建链表
#include <cstdio>
#include <cstdio>
struct node{
int data;
node* next;
};
node* create(int Array[]) {
node *head, *p, *pre;
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 main() {
int Array[5] = {4, 5, 6, 2, 3};
node* L = create(Array);
// 输出
L = L->next;
while(L != NULL) {
printf("%d ",L->data);
L = L->next;
}
}
// 插入元素
void insert(node* head, int pos, int x) {
//插到pos位置 例 原 5 3 6 1 2 pos=3 x=4 后 5 3 '4' 6 1 2
node*p = head;
for(int i=0; i<pos-1; i++) {
p = p->next; //p为插入位置的前个节点
}
node* p = new node;
q->data = x;
q->next = p->next;
p->next = q;
}
// 删除元素
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 = p->next;
} else {
pre = p;
p = p->next;
}
}
}
// 静态链表
struct node{
int data;
int next;
} Node[MAXN];
链表
最新推荐文章于 2024-09-04 18:37:12 发布
