双指针求调
查看原帖
双指针求调
1031719
_madeline_楼主2024/10/16 15:57

(如果把注释解开,甚至会直接崩溃)

#include <iostream>
#include <malloc.h>
using namespace std;
int Node_cnt=0;
struct Node{
    int empty;
};
Node** pCreate();
int main(){
    int N,M,Z,X,Y;
    cin>>N>>M;
    const int __N=N;
    Node** arr[__N+1];
    Node* my_p=NULL;
    for(int i=0;i<=__N;i++){
        arr[i]=NULL;
    }
    for(int i=0;i<M;i++){
        cin>>Z>>X>>Y;
        if(Z==1){
            if(arr[X]==NULL&&arr[Y]==NULL){
                arr[X]=pCreate();
                arr[Y]=arr[X];
                cout<<(*arr[Y])->empty<<endl;
            }else if(arr[X]==NULL){
                arr[X]=arr[Y];
            }else if(arr[Y]==NULL){
                arr[Y]=arr[X];
            }else {
                /*
                    my_p=*arr[X];
                    if(my_p==NULL) cout<<"err"<<endl;
                    else cout<<my_p->empty<<endl; 
                    free(*arr[Y])
                    */
                *arr[Y]=*arr[X];
            }
        }else if(Z==2){
            if(arr[X]==NULL&&arr[Y]==NULL){
                cout<<'N'<<endl;
            }else if(arr[X]==NULL){
                cout<<'N'<<endl;
            }else if(arr[Y]==NULL){
                cout<<'N'<<endl;
            }else {
                if(*arr[X]==*arr[Y]){
                    cout<<'Y'<<endl;
                }else cout<<'N'<<endl;
            }
        }
    }



}
Node** pCreate(){
    Node* p=(Node*)malloc(sizeof(Node));
    p->empty=Node_cnt++;
    Node** pp=&p;
    return pp;
}
2024/10/16 15:57
加载中...