链表
2022年第一篇博客!!!
说来惭愧,学习OI已经两年半了(至少是快两年半了),我竟然还不会写链表。大无语事件。
何为链表?链表是一种可以做到 \(O(1)\) 插入却要 \(O(N)\) 查询的……基本数据结构。然后要用到各种各样奇怪的东西,比如指针(之前我写的所有代码都是数组模拟指针,直到今天我才学会如何使用指针……)
直接上代码。以下代码可以支持插入(直接插到最后面)和遍历。
struct node{int data;node *next;};
node *head=NULL;
void insert(int wh){
node *newone=new node;
newone->data=wh;
newone->next=head;
head=newone;
}
void find(){
for(node *i=head;i!=NULL;i=i->next)printf("%d ",i->data);
printf("\n");
}
操作(简写过的):i(1);i(2);f();i(3);f();
输出:
2 1
3 2 1