1.3.1线性链表之动态(malloc)链表
来源:互联网 发布:淘宝客api调用 编辑:程序博客网 时间:2024/05/10 19:26
/*************线性表单链表存储结构
typedef struct LNode {
ElemType data; //数据域
struct *next; //指针域
}LNode, *LinkList;
//查看链表中第i个元素,用e返回其值
Status GetElem_L( LinkList L, int i, ElemType &e ){
p = L->next; j = 1; //初始化p指向第一个结点,j为计数器;
while ( p&&j<i ){
p = p->next ; j++;
}
if ( !p || j>i)return ERROR;
e = p->data;
return OK;
}//GetElem_L
//在带头结点的单链表中第i个位置之前插入数据元素e
Status ListInsert_L( LinkList &L ,int i, ElemType e ) {
p = L; j = 0; //初始化p指向头结点,j为该结点的位序
while( p && j<i-1 ){ p = p->next; j++; } //找到第i - 1个结点
if( !p || j>i-1 )return ERROR; //i <1或者i大于表长加1;
s = ( LinkList )malloc( sizeof( LNode ) };
if( s==NULL )return ERROR;
s->data = e; s->next = p->next; //插入L中
p ->next = s;
return OK;
}//ListInsert_L
//在带头结点的单链表L中删除第 i 个元素,并且由e返回其值
Status ListDelete_L ( LinkList &L ,int i, ElemType e ) {
p = L; j = 0; //初始化p指向头结点,j为该结点的位序
while( p && j<i-1 ){ p = p->next; j++; } //找到第i - 1个结点
if( !(p->next) || j>i-1 )return ERROR; //i <1或者i大于表长加1,删除位置不合理;
q = p->next; p->next = p->next;
e = q->data; free( q ); //删除并释放结点
return OK;
}//ListDelete_L
//逆序输入n个元素的值,建立带表头结点的单链表L
void CreateList_L( LinkList &L, int n) {
L = (LinkList )malloc( sizeof( LNode );
L->next = NULL; //先建立一个带头结点的单链表
for ( i = n; i>0; i-- ){
p = ( LinkList )malloc ( sizeof (LNode ));
scanf( &p->data );
p->next = L->next; L->next = p;
}
}//CreateList_L
//已知单链表LA和LB按值非递减排列(从小到大)
//归并LA和LB到LC也按值非递减排列
void MergeList_L( LinkList &La, LinkList &Lb, LinkList &Lc ){
pa = La->next;pb = Lb->next;
Lc = pc = La; //用La的头结点作为Lc的头结点
while ( pa && pb ){
if( pa->data>=pa->data ){
pc->next = pa;
pc = pa;
pa = pa->next;
}
else{
pc->next = pb;
pc = pb;
pa = pb->next;
}
pc->next = pa ? pa:pb;
free( Lb );
}//MergeList_L
0 0
- 1.3.1线性链表之动态(malloc)链表
- 数据结构之线性表3单链表(动态单链表)
- 数据结构之线性表的线性分配动态存储
- 1.3.1线性链表之静态(结构体数组)链表
- C语言之动态内存分配malloc
- 数据结构之线性表(链表)
- 数据结构之线性表 -- 链表(总括)
- 线性表之链表(单链表)
- 【Data】数据结构之线性表(1)
- 动态内存分配(malloc/free)简单实现--隐式空闲链表
- 处理动态链表所需函数一:malloc
- 矩阵乘法-指针的方法-动态malloc- 随笔(1)
- 线性顺序表(动态数组实现)
- malloc && free (malloc使用循环链表管理)
- 动态线性表
- 老郭带你学数据结构(C语言系列)2-线性表之动态顺序表
- 线性表之顺序存储结构(C语言动态数组实现)
- 线性表之顺序存储结构(C语言动态数组实现)
- Oracle Database 12c安装教程(Windows版)
- Windows API常用函数简单例子大全
- Android控件之日期与时间
- sql语句总结
- MyBatis if test 字符串判断问题
- 1.3.1线性链表之动态(malloc)链表
- 2016-12-12
- spring笔记一
- 面试题集
- 【JavaScript 学习--03】--JS动态的更改tagName
- android ormlite简单使用和读取sdcard下db数据库
- S4.2_Struts2_ActionAdvance 在url地址中动态调用action方法
- mysql全量备份、增量备份
- 通过工具查看Hadoop的 fimage 文件和 edits 文件