全RE求助
查看原帖
全RE求助
533102
monodev楼主2023/7/27 12:00

Invalid memory reference 各位大佬神犇帮忙看看吧

#include <iostream>
using namespace std;

const int size = 1000 + 1;

struct node{
	int data;
	node *next;
};

void insert(node *head, int data, int index){
	node *p = head;
	for(int i = 0; i < index; i ++)
		p = p -> next;
	
	node *newnode = new node();
	p -> data = data;
	p -> next = newnode;
}

void erase(node *head, int index){
	node *p = head;
	for(int i = 0; i < index - 1; i ++)
		p = p -> next;
	
	p -> next = (p -> next) -> next;
}

int getdata(node *head, int index){
	node *p = head;
	
	for(int i = 0; i < index; i ++)
		p = p -> next;
	
	return p -> data;
}

int main(){
	node list;
	list.next = NULL;
	insert(&list, 1, 0);
	int size = 1;
	
	int q;
	cin >> q;
	
	for(int i = 0; i < q; i ++){
		int op;
		cin >> op;
		if(op == 1){
			int opna, opnb;
			cin >> opna >> opnb;
			int i = 0;
			for(; i < size; i ++)
				if(getdata(&list, i) == opna)
					break;
			insert(&list, opnb, i + 1);
			size ++;
		}
		if(op == 2){
			int opna;
			cin >> opna;
			int i = 0;
			for(; i < size; i ++)
				if(getdata(&list, i) == opna)
					break;
			i ++;
			if(i >= size) cout << 0 << endl;
			else cout << getdata(&list, i) << endl;
		}
		if(op == 3){
			int opna;
			cin >> opna;
			int i = 0;
			for(; i < size; i ++)
				if(getdata(&list, i) == opna)
					break;
			i ++;
			erase(&list, i);
		}
	}
	return 0;
}
2023/7/27 12:00
加载中...