正在加载图片...
2单链表 算法举例(带表头结点的单链表 typedef int Elem Type typedef struct LNod i Elem Type data; struct lnode /*可理解为定义两个类型 LNode 结构类型; Linklist---结点指针类型,指向结点 由于头指针是结点指针,所以该类型变量可定义为链表 LNode*p等价于 Linklist p*/ ***客水客客宗水客客水水水水**亦水客容水客水市客水称水*涂**水*客水 索六功能:初始化单链表,产生头结点 六输入:无 六输出:成功时返回头结点指针 涂本涂*凇称水水客水客水水容水 LinkList ListlnitO L Node *s. LinkList) malloc( sizeof( L Node),/*产生头结点* s->data=0: s->next=NULL return S, /*返回头结点指针* /容****幸亲**春本*****春本李春本**幸春本**春春** 功能:线性表插入操作,将某数据元素插入到单链表* 的第i个数据元素之前 输入:单链表的头指针L、位置i、待插入的数据元素e☆ 六输出:成功时返回OK 本客家本**亲*本*举***本李*本***幸**家率*家幸幸本*本率*亲**本*家*/ int ListInsert(LinkList L, int 1, Elem Type e) LNode"p, s, J p=(LNode *)L; /*p指向链表头结点* while(p &&j<i-1) ip=p->next; ++3; 3 /*执行i-1次定位第i-1个结点*} 2 单链表 算法举例(带表头结点的单链表): typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; /*可理解为定义两个类型: LNode ----- 结构类型; LinkList ----- 结点指针类型,指向结点, 由于头指针是结点指针,所以该类型变量可定义为链表 LNode *p 等价于 LinkList p */ /**************************************************** ** 功能:初始化单链表,产生头结点 ** ** 输入:无 ** ** 输出: 成功时返回头结点指针 ** ****************************************************/ LinkList ListInit() { LNode *s; s=(LinkList) malloc(sizeof(LNode)); /*产生头结点*/ s->data=0;s->next=NULL; return s; /*返回头结点指针*/ } /********************************************************** ** 功能:线性表插入操作,将某数据元素插入到单链表 ** ** 的第 i 个数据元素之前 ** ** 输入:单链表的头指针 L、位置 i、待插入的数据元素 e ** ** 输出: 成功时返回 OK ** **********************************************************/ int ListInsert(LinkList L,int i, ElemType e) { LNode *p,*s; int j; p=(LNode *) L; /*p 指向链表头结点*/ j=0; while (p && j<i-1) {p=p->next;++j;} /* 执行 i-1 次定位第 i-1 个结点 */
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有