往有序链表的插入元素
来源:互联网 发布:大数据网址 编辑:程序博客网 时间:2024/04/30 11:08
在有序链表中插入元素时,最好设置两个指针,一前一后,后面指针负责比较大小,前面的指针负责插入操作。
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>struct vNode { int value; struct vNode* next;};struct vNode* insertIntoSortedList(struct vNode* head,int value){ struct vNode* node = (struct vNode*)malloc(sizeof(struct vNode)); struct vNode *p,*q; node->value = value; node->next = NULL; if(head==NULL){ //空链表 return node; } if(head->value >= value){ //第一个元素就比value大 node->next = head; return node; } p = head->next; q = head; while(p!=NULL && p->value<value){//遍历,直到遇到一个不小于自身的 q = p; p = p->next; } node->next = p; //插入操作 q->next = node; return head;}int _tmain(int argc, _TCHAR* argv[]){ //测试代码 struct vNode* v1 = (struct vNode*)malloc(sizeof(struct vNode)); struct vNode* v3 = (struct vNode*)malloc(sizeof(struct vNode)); struct vNode* v5 = (struct vNode*)malloc(sizeof(struct vNode)); struct vNode* v7 = (struct vNode*)malloc(sizeof(struct vNode)); struct vNode* v9 = (struct vNode*)malloc(sizeof(struct vNode)); v1->next = v3;v1->value = 1; v3->next = v5;v3->value = 3; v5->next = v7;v5->value = 5; v7->next = v9;v7->value = 7; v9->next = NULL;v9->value = 9; v1 = insertIntoSortedList(v1,98); while(v1!=NULL){ printf("%d ",v1->value); v1 = v1->next; } printf("\n"); return 0;}
0 0
- 往有序链表的插入元素
- 往有序链表的插入元素使原链表依旧有序
- 往有序单循环链表的插入元素使原链表依旧有序
- 单向循环链表的有序插入 对单向循环链表head插入元素 链表保持有序
- 链表的创建、元素插入、元素删除、以及两个有序链表的归并
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- 有序链表的插入
- (顺序有序表)插入元素
- 有序数组 插入元素
- 有序链表的重复元素删除
- 有序顺序表的插入
- 有序顺序表的插入
- 在有序的顺序表 L 中保序插入数据元素 x
- 数组的查找,插入元素保证数组有序
- Java数组-二分查找法用于元素插入有序数组,并获取元素插入的位置
- 【bzoj2007】【NOI2010】【海拔】
- HTTP请求头
- 网络限制解决方案
- Access数据库导入Oracle总结
- 八皇后问题(C语言版本)
- 往有序链表的插入元素
- HADOOP分布式安装
- Core Animation 高级理论知识汇总
- JDBC链接MySQL
- 源泉书签 今日更新:优化了搜索框
- Linux磁盘使用
- 《java课程设计》之猜猜看游戏(二)
- 如何用微信编辑器排版出美观的图文消息
- linux查看java jdk安装路径和设置环境变量