链表
插入链表: 利用尾插法,搞一个变量表示最后一个元素就行了。// 针对单个链表的可以,但是其他的,就不行,我的评价不如 链式前向星。
插入和删除看代码,注意特判空链表和head。
#includeusing namespace std; #define ri register int #define M 100005 template <class G> void read(G &x) { x=0;int f=0;char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();} x=f?-x:x; return ; } struct dian{ int val; dian *next; dian(int a) { val=a;next=nullptr; } }; int n; int main(){ read(n); dian *head=new dian(2); dian *p=head; for(ri i=1;i<=n;i++) { int a;cin>>a; dian *q=new dian(a); p->next=q; p=q; } p=head; while(p!=nullptr) { printf("%d ",p->val); p=p->next; } printf("\n"); p=head; while(head->val==2) { dian *q=head; head=head->next; delete q; } while(p->next!=nullptr) { if(p->next->val==2) { dian *q=p->next; p->next=p->next->next; delete q; } p=p->next; } p=head; while(p!=nullptr) { printf("%d ",p->val); p=p->next; } return 0; }