链表--结构与指针使用
来源:互联网 发布:外贸原单皮鞋淘宝店 编辑:程序博客网 时间:2024/06/08 02:16
单链表
插入到有序单链表。函数的参数是一个指向链表根指针的指针,以及一个需要插入的新值。
#include <stdlib.h>#include <stdio.h>#define FALSE 0#define TRUE 1typedef struct NODE{struct NODE *link;int value;}int sll_insert( Node **rootp, int new_value ){Node*current;Node*previous;Node*new;current = *rootp;previous = NULL;while( current != NULL && current->value < new_value ){previous = current;//保存前一个节点地址current = current->link;//指向下一个节点}new = (Node *)malloc( sizeof( Node ));//分配动态内存if( new == NULL )return FALSE;new->value = new_value;//插入的新值存储在新节点中 //新节点插入链表new->link = current;if( previous == NULL )//检查是否为第一个节点*rootp = new;elseprevious->link = new;return TRUE;}
对上面程序的优化:
#include <stdlib.h>#include <stdio.h>#defineFALSE 0#define TRUE 1typedef struct NODE{struct NODE *link;int value;}int sll_insert( register Node **linkp, int new_value )//增加 register 声明,提高结果代码效率{register Node*current;register Node*new;while( ( current = *linkp ) != NULL && current->value < new_value )linkp = ¤t->link;//linkp是link的地址new = (Node *)malloc( sizeof( Node ) );if( new == NULL )return FALSE;new->value = new_value; //插入新节点到链表,而无需考虑是否是第一个节点new->link = current;*linkp = new;return TRUE;}
通过这种优化便可消除插入位置在第一个节点的特殊情况
- 链表--结构与指针使用
- 结构体与指针
- 结构 与 指针
- 指针与结构
- 结构体与指针
- 结构与指针
- 指针与结构体
- 结构体与指针
- 指针与结构体
- 结构体与指针
- 结构体与指针
- 如何正确使用指针(指针作为输出型参数)与结构体指针作为函数参数
- 使用结构和指针
- 从指针的使用角度看数组与结构体
- 简单结构体与函数指针的使用
- 从指针的使用角度看数组与结构体
- 使用变量或者结构体与使用变量指针或结构体指针方法的优缺点是
- 指针与结构体、函数指针
- java sleep()和wait()的区别
- 软工概述
- Windows:Windows 8安装64位Benq G900HD的显示器驱动
- IOS在线学习好網站收集
- poj 1389
- 链表--结构与指针使用
- 二进制的简单运用
- (wifi)jni层gbk格式中文无损转换成utf格式
- 产生随机数
- hdu 2896 病毒侵袭 (AC自动机)
- HDOJ 骨铺方格
- 《Linux Shell Scripting Cookbook》Linux常用命令笔记(一)
- BOOTMGR is compressed的解决方法
- 《学习OpenCV(中文版)》第4章 练习3a