c++实现单链表创建,删除,遍历,插入,修改操作

【c++实现单链表创建,删除,遍历,插入,修改操作】亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述c++实现单链表创建,删除,遍历,插入,修改操作相关的知识,希望能为你提供帮助。

#include< iostream>
#include< string>
#include< malloc.h>
using namespace std;

struct Node

int data;
struct Node* next;
;

struct Node* build_list(int n)

Node *head =(struct Node*)malloc(sizeof(Node));
if (head == NULL)

cout< < "malloc failed!"< < endl;
return head;

head-> data = https://www.songbingjia.com/android/1;
head-> next = NULL;

Node *curNode = head;
for (int i=1; i< n; i++)

Node *newNode = (struct Node*)malloc(sizeof(Node));
if (newNode == NULL)

cout< < "malloc failed!"< < endl;
return head;

newNode-> data = https://www.songbingjia.com/android/i+1;
newNode-> next = NULL;

curNode-> next = newNode;
curNode = newNode;

return head;

struct Node* addtail_node_list(struct Node* head, struct Node* newNode)

if (head == NULL || newNode == NULL)

return head;

struct Node* pcurrNode=head;
while(pcurrNode-> next != NULL)

pcurrNode = pcurrNode-> next;

if (pcurrNode != NULL)

pcurrNode-> next = newNode;
newNode-> next = NULL;

return head;


struct Node* addprev_node_list(struct Node* head, struct Node* newNode,int key)

if (head == NULL || newNode == NULL)

return head;

struct Node* pcurrNode = head;
struct Node* pprevNode = NULL;
while(pcurrNode != NULL)

if (pcurrNode-> data =https://www.songbingjia.com/android/= key)

if (pcurrNode == head)

newNode-> next = head;
head = newNode;

else

pprevNode-> next = newNode;
newNode-> next = pcurrNode;

break;

pprevNode = pcurrNode;
pcurrNode = pcurrNode-> next;

return head;


struct Node* modkey_node_list(struct Node* head, int key, int modval)

if(head==NULL)

return head;


struct Node* pCurrNode=head;
while(pCurrNode!=NULL)

if (pCurrNode-> data =https://www.songbingjia.com/android/= key)

pCurrNode-> data = https://www.songbingjia.com/android/modval;
break;

pCurrNode=pCurrNode-> next;



return head;


struct Node* query_node_list(struct Node* head, int key)

if(head==NULL)

return head;


struct Node* pCurrNode=head;
while(pCurrNode!=NULL)

if (pCurrNode-> data =https://www.songbingjia.com/android/= key)

return pCurrNode;

pCurrNode=pCurrNode-> next;



return NULL;

struct Node* delete_node_list(struct Node* head, int key)

if(head==NULL)

cout< < "list is null"< < endl;
return head;


    推荐阅读