往有序链表的插入元素使原链表依旧有序
来源:互联网 发布:.net core mysql 编辑:程序博客网 时间:2024/05/17 09:22
/* 在有序链表中插入元素时,最好设置两个指针,一前一后,cur指针负责比较大小,pre指针负责定位插入位置的前驱。【关键点】(1)3中情况:空链表、第一个值比插入元素大、非空链表&&第一个元素比插入元素小(2)pre、cur指针的初始值(3)返回值类型:链表指针TNode**/
#include<iostream>using namespace std;typedef struct TNode{ int data; struct TNode *next;}TNode;TNode* insertNum(TNode* head, int data){ TNode *node = new TNode; node->data = data; node->next = NULL; //case1:如果是空链表 if (head == NULL) { return node; } //case2:如果第一个元素就比待插入元素大,直接插入node,并 //把node设为新的头结点 if (head->data > data) { node->next = head; return node; } //case3:如果不是空链表&&第一个元素不比待插入元素大 TNode* pre = head; //插入位置的前驱 TNode* cur = head->next; //用来比较大小 while (cur && cur->data < data) //查找插入位置 { pre = cur; cur = cur->next; } //循环结束后,找打插入位置的前驱pre //插入元素 node->next = cur; pre->next = node; return head;}int main(){ int num; TNode* head = NULL; int A[4] = { 0, 11, 3, 4 }; for (int i = 0; i < 4; i++) { head = insertNum(head, A[i]); } for (TNode* cur = head; cur!=NULL; cur = cur->next) cout << cur->data<<endl; return 0;}
阅读全文
1 0
- 往有序链表的插入元素使原链表依旧有序
- 往有序单循环链表的插入元素使原链表依旧有序
- 往有序链表的插入元素
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- 【链表】合并两个有序链表,合并后链表依旧有序
- 合并两个有序链表,合并以后的链表依旧有序
- 合并两个有序链表,合并以后的链表依旧有序。
- 合并两个有序链表,合并以后的链表依旧有序
- 链表--合并两个有序链表,合并以后的链表依旧有序。
- 问题:合并两个有序链表,合并以后的链表依旧有序。
- 单向循环链表的有序插入 对单向循环链表head插入元素 链表保持有序
- 有序数组 插入元素
- 链表的创建、元素插入、元素删除、以及两个有序链表的归并
- (顺序有序表)插入元素
- Java 自己实现队列
- wsgi.py的详解
- js常用方法_格式化金额_比较时间对象_秒转时分秒
- hdu6205-模拟&思维-card card card
- jQuery设计思想
- 往有序链表的插入元素使原链表依旧有序
- C语言 猜拳游戏
- 算法 第四版 2.3.17
- 浅谈UML中的聚合与组合
- PAT (Basic Level) Practise (中文) 1054. 求平均值 (20)
- 78. Subsets
- 第二周——C++的三种参数传递方法
- 使用Qt资源
- Python学习笔记 --- 使用Base64对数据加密解密