ProDeveloperTutorial.com

教程和编程解决方案
菜单
  • Shell脚本
  • 系统设计
  • Linux系统编程
  • 4g LTE
  • 编码问题
  • C
  • C ++
  • DSA
  • GIT

从单个链接列表执行以下删除操作,C ++解决方案

前开发者教程 2019年2月24日

1.删​​除给定位置的国彩网

2.递归删除整个单个链接列表。

1.删​​除给定位置的国彩网

如果要删除头国彩网,则删除头国彩网,然后将新头指向LL中的下一个元素。

如果要删除中间的元素:

  1. 然后将临时指针指向要删除的国彩网的上一个国彩网。
  2. 用下一个指针指向要删除的国彩网的下一个国彩网。
  3. 删除国彩网。
  4. 分配温度>在下一个国彩网旁边。

2.递归删除整个单个链接列表。

1.如果头国彩网为空,则将其返回。

2.否则将头移到下一个国彩网并递归调用该函数。

 

C ++解决方案

#include<iostream>
#include<vector>
#include<string>

using namespace std;

struct Node
{
	int data;
	Node *next;

	Node(int x)
	{
		data = x;
		next = NULL;
	}
};

void print_list(Node *head)
{
	Node *start = head;

	while(start)
	{
		cout<<start->data<<" -> ";
		start = start->next;
	}
	cout<<"\n";
}

void delete_given_node(Node **head, int node_pos)
{
	if (*head == NULL) 
      return; 
   	Node *temp = *head; 

   	// If head needs to be removed 
    if (node_pos == 0) 
    { 
        *head = temp->next;   // Change head 
        free(temp);           // free old head 
        return; 
    } 


    // Find previous node of the node to be deleted 
    for (int i=0; temp!=NULL && i<node_pos-1; i++) 
         temp = temp->next; 

    // Node temp->next is the node to be deleted 
    // Store pointer to the next of node to be deleted 
    Node *next = temp->next->next; 
  
    free(temp->next);
  
    temp->next = next; 

}

void delete_full_list(Node *head)
{
	if(head == NULL)
		return;
	delete_full_list(head ->next);
	free(head);
}

int main()
{
	Node *head = new Node(2);
	head -> next = new Node(1);
	head -> next -> next = new Node(4);
	head -> next -> next -> next = new Node(3);
	head -> next -> next -> next  -> next = new Node(6);
	head -> next -> next -> next  -> next -> next = new Node(5);

	cout<<"The original list = "<<endl;
	print_list(head);

	int node_no = 3;
	delete_given_node(&head, node_no);

	cout<<"Thelist after deleting "<< node_no <<" node is = "<<endl;
	print_list(head);

	delete_full_list(head);

	return 0;
}

该网站上可用的教程列表:

C编程20+章C ++编程80+章
100多个编码问题数据结构和算法85+章
系统设计20+章Shell脚本编写12章
4g LTE 60+章节最常见的编码问题
5G NR 50+章Linux系统编程20+章
分享
电子邮件
鸣叫
领英
Reddit
绊倒
Pinterest的
上一篇文章
下一篇

关于作者

前开发者教程

每天我们都会讨论竞争性编程问题,请加入我们的网站:   电报频道

ProDeveloperTutorial.com

教程和编程解决方案
版权© 2020 ProDeveloperTutorial.com
从以下课程获得热门课程: 教育性的






      1. <label id="qSkzbVJ"><rp class="drOHvJc"><rt class="JLjvDuC"></rt></rp></label>

        <kbd id="UZk0Ynq" class="UgX76iB"></kbd>
        <rt id="BlpLwSE" class="BSZJXKx"></rt>



              1. <source id="HxvpP3J"></source>
                  <option class="J5roNDV"><kbd id="BER784H"></kbd></option>