链表
链表的基本操作
caicai____
这个作者很懒,什么都没留下…
展开
-
双向链表的建立,插入,删除
#include <iostream>using namespace std;struct link{ double num; link* next; link* front;};int main(){ link* p, * head; p = head = new link; //没有头结点的双向链表的建立 for (int i = 0; i < 5; i++) { p->num = i;原创 2021-11-11 22:26:25 · 414 阅读 · 0 评论 -
有头节点的链表的插入
#include <iostream>using namespace std;struct link{ double num; link* next;};int main(){ link* p, * head; head = new link; //有头结点的链表 头插入 for (int i = 0; i < 5; i++) { p = new link; p->num = i;原创 2021-11-11 22:21:52 · 258 阅读 · 0 评论 -
循环链表的建立和插入
#include<iostream>using namespace std;struct link{ double num; link* next;};int main(){ //循环链表的建立 link* p, * first; p = first = new link; int n = 5; while (n--) { p->num = n; p->next = new原创 2021-11-11 20:38:00 · 330 阅读 · 0 评论 -
单链表的建立,插入,删除,查找
#include<iostream>using namespace std;struct List{ double num; List* next;};int main(){ List* head, * p; head = new List; //链表的建立 p = head; int n = 3; while (n--) { p->num = n; p->next原创 2021-11-11 20:33:48 · 596 阅读 · 0 评论 -
链表插入排序递归非递归
正常的插入排序插入非递归void insertSort(node* head) { node* i, * j;//这个*j不要忘记*啊 错了n次了 for (i = head; i; i = i->next) { for (j = head; j != i; j = j->next) {//当p和q有关的时候,更应该考虑pq为空时候的情况 if (i->val < j->val) { int temp = i->val; i->v原创 2021-11-11 19:51:41 · 82 阅读 · 0 评论 -
链表递归和非递归反转
非递归反转node* reverse(node* head) { node* a=NULL, b=head, c=NULL;//设一个哨兵节点a while (b) { c = b->next; b->next = a; a=b; b=c;//注意这里赋值不要反了 等同于“将赋值号右边的节点c另起一个名,该名为赋值号左边的节点b” }}递归反转node* reverse(node* head) { if (head || head->next) {//当链原创 2021-11-11 16:40:27 · 204 阅读 · 0 评论 -
链表冒泡递归非递归排序
链表反转递归node* reverse(node* head) { if (head || head->next) {//当链表为空的时候逆置 return head; } node * newhead=reverse(head->next);//递归到最后一步后把最后一个节点设为新头 head->next->next = head; head->next = NULL;//确保原先的头逆置为尾之后指向NULL return newhead;}链表反转非原创 2021-11-11 16:41:28 · 73 阅读 · 0 评论 -
链表选择排序递归非递归
正常的选择排序(伪代码)非递归选择排序void selSort(node * head) {//传入的是地址 node* p, *q,*t=NULL; int mmin = 1 << 30,temp;//位运算,使1左移三十位取一个较大的值(我之前因为这个踩过坑,所以即使有INT_MAX,在数据范围不大的时候,我有时候还是想用这个) for (p = head; p; p = p->next) { for (q = p; q; q = q->next) { if原创 2021-11-11 17:32:50 · 241 阅读 · 0 评论