C++学习记录-数据结构-链表
当要按顺序储存一大组数据,且要随时往里面增减数据,此时数组就显得不方便,用链表则会快很多
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多

代码实现:
1.创建链表结构体
1 2 3 4 5
| struct data { int dat; data* next=NULL; };
|
2.定义用于指示的变量
1 2 3 4 5 6 7
| int num = 0;
int dat;
struct data* head=NULL;
struct data* point = NULL;
|
3.开始往链表中插入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| cout << "请输入欲添加的数据" << endl; cin >> dat;
if (head == NULL) { head = new struct data; head->dat = dat; point = head; num++; }
else { if (head->dat >= dat) { struct data* newhead = new struct data; newhead->dat = dat; newhead->next = head; head = newhead; num++; } else { point = head; for (int i = 0; i < num; i++) { if (point->next == NULL || (point->dat <= dat && point->next->dat >= dat)) { struct data* newmid = new struct data; newmid->dat = dat; newmid->next = point->next; point->next = newmid; num++; break; } else { point = point->next; } } } }
|