猫史档案馆


c++自制链表

用户:happy_chickenhappy_chicken查看:1 回复:2 评论:1 创建时间:2023-06-04T10:35:31


//自制链表
#include <bits/stdc++.h>
using namespace std;

struct node {
	int data;
	node *next;
};
node *head, *tail, *p;

void erase(int key) {
	node *pre;
	p = head;
	pre = p;
	while (p->next != NULL) {
		if (p->data == key) {
			pre->next = p->next;
			delete p;
			p = pre->next;
		} else {
			pre = p;
			p = p->next;
		}
	}
	if (p->data == key) {
		delete p;
		pre->next = NULL;
	}

}

void inserd(int pos, int key) {
	node *new_p, *pre;
	p = head;
	pre = p;
	int k = 0;
	while (p->next != NULL) {
		p = p->next;
		k++;
		if (k == pos) {
			new_p = new node;
			new_p->data = key;
			new_p->next = p;
			pre->next = new_p;
			break;
		} else
			pre = p;
	}
	if (k < pos) {
		new_p = new node;
		new_p->data = key;
		new_p->next = NULL;
		p->next = new_p;
	}
}

int main() {
	int x;
	head = new node ;
	tail = head;
	cin >> x;
	while (x != -1) {
		p = new node;
		p->data = x;
		tail->next = p;
		tail = p;
		tail->next = NULL;
		cin >> x;
	}
	int erase_p, inserd_p;
	cout << "erase:";
	cin >> erase_p;
	erase(erase_p);
	cout << "inserd:";
	cin >> erase_p >> inserd_p;
	inserd(erase_p, inserd_p);
	if (head->next != NULL) {
		p = head->next;
		while (p->next != NULL) {
			cout << p->data << '\n';
			p = p->next;
		}
		cout << p->data ;
	}
	return 0;
}


回复

上一页1 页 / 共 1下一页
happy_chickenhappy_chicken

list

点赞0


评论


可靠的麦霸菇mgcu可靠的麦霸菇mgcu

、、、、、、

点赞0


评论