C++链表
单链表
C++的单链表创建、插入、删除、改变某一值。
struct ListNode
{
double value;
ListNode* next;
};
ListNode* create(ListNode* head,int n) {
ListNode* pre = head;
for (int i = 1; i < n; i++) {
ListNode* p = new ListNode();
p->value = i;
p->next = NULL;
pre->next = p;
pre = pre->next;
}
return head;
}
void gai(ListNode* head,int start,int target) {
ListNode* p = head;
while (p != NULL) {
if (p->value == start) {
p->value = target;
break;
}
else {
p = p->next;
}
}
}
void charu(ListNode* head, int num, int data) {
ListNode* p = head;
while (p != NULL) {
if (p->value == num) {
ListNode* pre = new ListNode();
pre->value = data;
pre->next = p->next;
p->next = pre;
p = p->next;
}
else {
p = p->next;
}
}
}
void headcha(ListNode* head, int num) {
ListNode* node = new ListNode();
node->value = num;
node->next = head->next;
head->next = node;
}
ListNode* del(ListNode* head, int data) {
ListNode* p = head;
ListNode* pre = head;
while (p != NULL) {
if (p->value == data) {
pre->next = p->next;
break;
}
else {
pre = p;
p = p->next;
}
}
return head;
}