#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; } }