计算机实验二感谢大哥

 

#include <iostream>
using namespace std;

typedef struct _NODE
{
	int n;
	_NODE *next;
}Node,*pNode;

void CreateNodes(pNode *head)
{
	cout<<"请输入节点数值,输入0结束:";
	int n;
	cin>>n;
	while(n != 0)
	{
		pNode node = new Node;
		node->n = n;
		if(*head == NULL)
		{
			*head = node;
			node->next = NULL;
		}
		else
		{
			node->next = (*head);
			*head = node;
		}
		cout<<"请输入下一个节点数值,输入0结束:";
		cin>>n;
	}
}

void InsertNode(pNode *head,int n,int nIdx)
{
	if(*head == NULL)
		return;
	pNode newNode = new Node;
	newNode->n = n;
	//
	if(nIdx == 0)
	{
		newNode->next = *head;
		*head = newNode;
	}
	else
	{
		int i = 1;
		pNode node = *head;
		while(node != NULL)
		{
			if(i==nIdx)
			{
				newNode->next = node->next;
				node->next = newNode;
				break;
			}
			node = node->next;
			i++;
		}
	}
}

int FindNode(pNode head,int nIdx)
{
	int i = 0;
	pNode node = head;
	while(node != NULL)
	{
		if(i==nIdx)
			return node->n;
		node = node->next;
		i++;
	}
	return 0x7FFFFFFF;
}

void DeleteNode(pNode *head,int nIdx)
{
	if(*head == NULL)
		return;
	if(nIdx == 0)
		*head = (*head)->next;
	else
	{
		int i=1;
		pNode node = *head;
		while(node != NULL)
		{
			if(i==nIdx)
			{
				if(node->next != NULL)
					node->next = node->next->next;
				else
					node->next = NULL;
				break;
			}
			node = node->next;
			i++;
		}
	}
}

void PrintNodes(pNode head)
{
	if(head == NULL)
		return;
	pNode node = head;
	do
	{
		cout<<node->n<<" ";
		node = node->next;
	}while(node != NULL);
	cout<<endl;
}

int main()
{
	pNode head = NULL;
	CreateNodes(&head);
	PrintNodes(head);
	int n,nIdx;
	cout<<"请输入需要插入的数值:";
	cin>>n;
	cout<<endl;
	cout<<"请输入需要插入的位置:";
	cin>>nIdx;
	cout<<endl;
	InsertNode(&head,n,nIdx);
	PrintNodes(head);
	cout<<"请输入需要删除的位置:";
	cin>>nIdx;
	cout<<endl;
	DeleteNode(&head,nIdx);
	PrintNodes(head);
	cout<<"请输入需要查询的位置:";
	cin>>nIdx;
	cout<<endl;
	n = FindNode(head,nIdx);
	if(n != 0x7FFFFFFF)
		cout<<"位置"<<nIdx<<"的数值为"<<n<<endl;
	else
		cout<<"指定元素不存在。"<<endl;
	//
	//
	return 0;
}

耗时耗力,好用请务必采纳

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632