代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
list use c
作者:
sincoder
/ 发布于
2012/10/8
/
2993
<div>typedef void * ElementType; //http://users.cis.fiu.edu/~weiss/dsaa_c2e/list.h /* START: fig3_6.txt */ #ifndef _List_H #define _List_H</div> <div>struct Node; typedef struct Node *PtrToNode; typedef PtrToNode List; typedef PtrToNode position;</div> <div>List list_make_empty( List L ); //清空链表 int list_is_empty( List L ); //Return true if L is empty int list_is_last( position P, List L ); position list_find( ElementType X, List L ); void list_delete( ElementType X, List L ); position list_find_previous( ElementType X, List L ); void list_insert( ElementType X, List L, position P ); void list_delete_list( List L ); position list_header( List L ); position list_first( List L ); position list_advance( position P ); ElementType list_retrieve( position P ); //取出 position 里面的值</div> <div>endif /* _List_H */ /* END */</div> <div>//////////////////////////////////////////////////////////// #include "StdAfx.h" #include "list.h"</div> <div>/* Place in the interface file */ struct Node { ElementType Element; position Next; };</div> <div>List list_make_empty( List L ) { if( L != NULL ) list_delete_list( L ); L = sin_malloc( sizeof( struct Node ) ); if( L == NULL ) { dbg_msg(L"list_insert() : malloc failed !!\n"); return NULL; } L->Next = NULL; return L; } <div> /* START: fig3_8.txt */ /* Return true if L is empty */</div> <div>int list_is_empty( List L ) { return L->Next == NULL; } /* END */</div> <div>/* START: fig3_9.txt */ /* Return true if P is the last position in list L */ /* Parameter L is unused in this implementation */</div> <div>int list_is_last( position P, List L ) { return P->Next == NULL; } /* END */</div> <div>/* START: fig3_10.txt */ /* Return Position of X in L; NULL if not found */</div> <div>position list_find( ElementType X, List L ) { position P; /* 1*/ P = L->Next; /* 2*/ while( P != NULL && P->Element != X ) /* 3*/ P = P->Next; /* 4*/ return P; } /* END */</div> <div>/* START: fig3_11.txt */ /* Delete from a list */ /* Cell pointed to by P->Next is wiped out */ /* Assume that the position is legal */ /* Assume use of a header node */</div> <div>void list_delete( ElementType X, List L ) { position P, TmpCell; P = list_find_previous( X, L ); if( !list_is_last( P, L ) ) /* Assumption of header use */ { /* X is found; delete it */ TmpCell = P->Next; P->Next = TmpCell->Next; /* Bypass deleted cell */ sin_free( TmpCell ); } } /* END */</div> <div>/* START: fig3_12.txt */ /* If X is not found, then Next field of returned value is NULL */ /* Assumes a header */</div> <div>position list_find_previous( ElementType X, List L ) { position P; /* 1*/ P = L; /* 2*/ while( P->Next != NULL && P->Next->Element != X ) /* 3*/ P = P->Next; /* 4*/ return P; } /* END */</div> <div>/* START: fig3_13.txt */ /* Insert (after legal position P) */ /* Header implementation assumed */ /* Parameter L is unused in this implementation */</div> <div>void list_insert( ElementType X, List L, position P ) { position TmpCell; /* 1*/ TmpCell = sin_malloc( sizeof( struct Node ) ); /* 2*/ if( TmpCell == NULL ) /* 3*/ { dbg_msg(L"list_insert() : malloc failed !!\n"); return ; } /* 4*/ TmpCell->Element = X; /* 5*/ TmpCell->Next = P->Next; /* 6*/ P->Next = TmpCell; } /* END */</div> if 0 /* START: fig3_14.txt */ /* Incorrect DeleteList algorithm */</div> <div>void DeleteList( List L ) { Position P; /* 1*/ P = L->Next; /* Header assumed */ /* 2*/ L->Next = NULL; /* 3*/ while( P != NULL ) { /* 4*/ sin_free( P ); /* 5*/ P = P->Next; } } /* END */ #endif</div> <div>/* START: fig3_15.txt */ /* Correct DeleteList algorithm */</div> <div>void list_delete_list( List L ) { position P, Tmp; /* 1*/ P = L->Next; /* Header assumed */ /* 2*/ L->Next = NULL; /* 3*/ while( P != NULL ) { /* 4*/ Tmp = P->Next; /* 5*/ sin_free( P ); /* 6*/ P = Tmp; } } /* END */</div> <div>position list_header( List L ) { return L; } <div>position list_first( List L ) { return L->Next; } <div>position list_advance( position P ) { return P->Next; } <div>ElementType list_retrieve( position P ) { return P->Element; } </div>
试试其它关键字
list
use
c
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
sincoder
贡献的其它代码
(
4
)
.
组建一个下拉列表
.
NtSetInformationFile删除文件
.
Python 操作ini文件
.
list use c
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3