zoukankan      html  css  js  c++  java
  • c++实现单向链表的一些操作

    #include<iostream>
    #include <algorithm>
    #include <vector>
    #include <set>
    #include <map>
    #include <string>
    #include <string.h>
    #include<stack>
    #include<ctime>
    #include <sstream>
    using namespace std;
    
    //链表的数据结构
    struct ListNode
    {
    	int value;
    	ListNode* next;	
    	ListNode () {};
    	//赋值构造函数
    	ListNode (int v) : value(v),next(NULL){};
    };
    // 函数头声明
    ListNode* arraytolist (vector<int> a);
    void printlist(ListNode* fir);
    void insert(ListNode* p, int poi,int in);
    void deletenode(ListNode* p, int poi);
    void selectionsort(ListNode* p);
    
    // 按下F6进行编译
    int main()
    {
    	//创建一个链表(2,1,4,3,0,4,-1)
    	vector<int> a({2,1,4,3,0,4,-1});
    	ListNode* b=arraytolist(a);
    	insert(b,2,-10);
    	deletenode(b,2);
    	printlist(b);
    	return 0;
    }
    
    // 根据数组创建一个链表
    ListNode* arraytolist (vector<int> a)
    {
    	ListNode* p=new ListNode(a[0]);
    	ListNode* fir=p;
    	for(int i=1;i<a.size();i++)
    	{
    		p->next=new ListNode(a[i]);
    		p=p->next;
    	}
    	return fir;
    }
    //遍历并打印一个链表
    void printlist(ListNode* fir)
    {
    	while(fir!=NULL)
    	{
    		cout << fir->value << ' ';
    		fir=fir->next;
    	}
    	cout << endl;
    }
    //插入一个节点(后插入)
    void insert(ListNode* p , int poi ,int in)
    {
    	if(poi<0 ) return;
    	while((0 < poi--) ) 
    	{
    		if(p->next != NULL) p=p->next;
    		else break;
    	}
    	ListNode* mi=new ListNode(in);
    	mi->next=p->next;
    	p->next=mi;	
    }
    // 删除节点
    void deletenode(ListNode* p, int poi)
    {
    	if(poi<0) return ;
    	while(0 < poi--)
    	{
    		if(p->next !=NULL) p=p->next;
    		else break;
    	}
    	if(p->next !=NULL) 
    	{
    		ListNode *tmp=p->next;
    		p->next=tmp->next;
    		delete tmp;
    	}
    }
    

      

  • 相关阅读:
    [ES6] Objects create-shorthand && Destructuring
    [ES6] Spread Operator
    [ES6] Rest Parameter
    [ES6] Function Params
    [React] Extracting Private React Components
    [Javascript] Array methods in depth
    生物-大脑极限:大脑极限
    生物-永生计划:永生计划
    物理-纳米技术-纳米技术应用:纳米技术应用
    物理-纳米技术:纳米技术
  • 原文地址:https://www.cnblogs.com/yskn/p/10446024.html
Copyright © 2011-2022 走看看