链式表实现模板
来源:互联网 发布:网络新书推荐 编辑:程序博客网 时间:2024/06/06 05:50
typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode Position;typedef PtrToLNode List; /* 查找 */#define ERROR NULL Position Find( List L, ElementType X ){ Position p = L; /* p指向L的第1个结点 */ while ( p && p->Data!=X ) p = p->Next; /* 下列语句可以用 return p; 替换 */ if ( p ) return p; else return ERROR;} /* 带头结点的插入 *//*注意:在插入位置参数P上与课程视频有所不同,课程视频中i是序列位序(从1开始),这里P是链表结点指针,在P之前插入新结点 */bool Insert( List L, ElementType X, Position P ){ /* 这里默认L有头结点 */ Position tmp, pre; /* 查找P的前一个结点 */ for ( pre=L; pre&&pre->Next!=P; pre=pre->Next ) ; if ( pre==NULL ) { /* P所指的结点不在L中 */ printf("插入位置参数错误\n"); return false; } else { /* 找到了P的前一个结点pre */ /* 在P前插入新结点 */ tmp = (Position)malloc(sizeof(struct LNode)); /* 申请、填装结点 */ tmp->Data = X; tmp->Next = P; pre->Next = tmp; return true; }} /* 带头结点的删除 *//*注意:在删除位置参数P上与课程视频有所不同,课程视频中i是序列位序(从1开始),这里P是拟删除结点指针 */bool Delete( List L, Position P ){ /* 这里默认L有头结点 */ Position tmp, pre; /* 查找P的前一个结点 */ for ( pre=L; pre&&pre->Next!=P; pre=pre->Next ) ; if ( pre==NULL || P==NULL) { /* P所指的结点不在L中 */ printf("删除位置参数错误\n"); return false; } else { /* 找到了P的前一个结点pre */ /* 将P位置的结点删除 */ pre->Next = P->Next; free(P); return true; }}
0 0
- 链式表实现模板
- c++实现链式表的类模板
- C++模板实现链式栈
- C++模板实现链式队列
- 模板链式线性表
- 栈(链式存储) C++模板实现
- 队列(链式存储)C++模板实现
- 链式表的实现
- 链式线性表实现
- 链式表的实现
- 基于链式表的栈的类模板的C++实现
- List C++链式线性表模板
- [数据结构]栈之链式栈的类模板实现
- [数据结构]队列之链式队列的类模板实现
- C++类模板实现线性表单链式存储
- 数据结构——链式栈模板类实现
- 数据结构——链式队列模板类实现
- 链式线性表的实现
- MySql体系结构和存储引擎
- EM算法进阶(推导和证明)
- Solr搜索技术相对于Lucene和第三方搜索的优点
- AJax全接触
- Unity3D普通类和继承自MonoBehaviour类的区别
- 链式表实现模板
- getSerializableExtra(“item”)返回值为空不能执行的问题
- 使用tcpdump抓取Android手机或者机顶盒网络包
- Android经典蓝牙基础(一)
- cmd命令行下调整编码
- ExecutorService.submit()浅析(基于jdk1.6)
- 链路层--以太网,串行接口链路层协议,MTU
- 《数据库系统概论》学习笔记1
- 图像处理灰度化和二值化