C语言单链表基本函数.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一.无空间限制带头结点单链表结构体 1.宏定义: #includestdio.h #includestdlib.h #define OVERFLOW -2 #define OK 1 #define TRUE 1 #define ERROR 0 #define FALSE 0 #define ElemType ****; 2.结构体: 2. 无空间限制单链表结构体: typedef struct Node { ElemType data; struct Node *next; }Node,*Linklist; 3.基本函数: int Initlist_Linklist_1(Linklist L) /*初始化单链表:1.先决条件:定义一个全局尾指针变量;2.函数作用:初始化链表。*/ { L-next=NULL; tail=L; printf(单链表现初始化了!\n); return OK; } int Initlist_Linklist_2(Linklist L) /*初始化单链表:1.先决条件:初始化结构体数据即L-next=NULL(一次)或执行一次 Initlist_Linklist_1,定义一个全局尾指针变量;2.函数作用:删除已有链表,并初始化单链表*/ { Node *p,*q; if(p=L-next) { while(p) { q=p-next; free(p); p=q; } } L-next=NULL; tail=L; printf(单链表现初始化了!\n); return OK; } int Increase_Linklist(Linklist L) /*尾接法增加数据:1.先决条件:先按初始化函数初始化,定义一个全局尾指针变量; 2.函数作用:为单链表L增加数据,以标识符“0”结束*/ { int panduan; ElemType e; Node *p; printf(输入0结束增加数据!\n); do { printf(请输入数据:); scanf(%d,e);//因ElemType不同而不同,特别是字符类型 getchar(); if(e==0)//因ElemType不同而不同,特别是字符类型 { printf(再次输入0表示结束增加数据,输入非零将把0增加到数据中.\n); printf(请输入:); scanf(%d,panduan); getchar(); if(panduan==0) { printf(正常结束增加数据!\n); return OK; } } p=(Node *)malloc(sizeof(Node)); if(p==NULL) { printf(申请空间失败,请稍后再试!\n); return OVERFLOW; } tail-next=p; tail=p; tail-data=e; tail-next=NULL; e++; }while(e!=0);//因ElemType不同而不同,特别是字符类型 printf(正常结束增加数据!\n); return OK; } int Input_Linklist(Linklist L) /*遍历输出函数:1.先决条件:先决条件:先按初始化函数初始化, 使链表为带头结点;2.函数作用:输出单链表中各个数据*/ { Node *p; int count=0; for(p=L-next;p!=NULL;p=p-next) { printf(%d ,p-data);//会因ElemType不同而不同 count++; if(count%10==0) printf(\n); } printf(\n); return OK; } int Delete_Linklist_1(Linklist L) /*删除函数:1.先决条件:初始化单链表或初始化结构体数据即L-next=NULL, 单链表以值(要求为数,不能是字符)排列,定义一个全局尾指针变量; 2.函数作用:删除表中所不大于maxk且不小于mink的元素。*/ { ElemType mink,maxk; Node *o,*p,*q; int count=0; printf(删除表中所不大于maxk且不小于mink的元素。\n); printf(请输入mink和maxk值:\n); scanf(%d%d,m

文档评论(0)

hong333666 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档