玄关!求CSP中双向链表的做法

灌水区

```cpp #include<bits/stdc++.h> using namespace std; typedef struct DNode{ int data; struct DNode *pre,*next; }DNode; DNode *phead; void headinsert(int x){ DNode *pTemp=(DNode *)malloc(sizeof(DNode)); pTemp->data=x; pTemp->next=phead->next; pTemp->pre=phead; phead->next->pre=pTemp; phead->next=pTemp; return; } void detele(int x){ DNode *p=phead; while(p->next->data!=x) p=p->next; DNode *q=p->next; p->next=q->next; q->next->pre=p; free(q); return; } void insert(int x,int y){ DNode *p=phead; while(p->data!=x&&p->next!=phead) p=p->next; DNode *pTemp=(DNode *)malloc(sizeof(DNode)); pTemp->data=x; pTemp->next=p->next; pTemp->pre=p; p->next->pre=pTemp; p->next=pTemp; return; } void printlist(){ DNode *p=phead->next; while(p!=phead){ cout << p->data << " "; p=p->next; } return; } void search(int x){ DNode *p=phead->next; while(p->data!=x){ p=p->next; } cout << p->data << " " << p->next->data << " " << p->pre->data << endl; return; } int main(){ phead=(DNode *)malloc(sizeof(DNode)); phead->next=phead; phead->pre=phead; headinsert(3); headinsert(2); headinsert(1); search(2); detele(2); insert(4,1); printlist(); return 0; } ``` 双向+循环
by CSP_JAKME @ 2024-09-19 22:37:23


@[xhx2011](/user/779534) 不,你会并查集,就不用链表
by crz_qwq @ 2024-09-19 22:41:07


|