电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构C语言版_线性表的单链表存储结构表示和实现VIP免费

数据结构C语言版_线性表的单链表存储结构表示和实现_第1页
1/20
数据结构C语言版_线性表的单链表存储结构表示和实现_第2页
2/20
数据结构C语言版_线性表的单链表存储结构表示和实现_第3页
3/20
#include #include #include /* 数据结构C 语言版 线性表的单链表存储结构表示和实现 P28-31 编译环境:Dev-C++ 4.9.9.2 日期:2011 年2 月10 日 */ typedef int ElemType; // 线性表的单链表存储结构 typedef struct LNode { ElemType data; //数据域 struct LNode *next;//指针域 }LNode, *LinkList; // typedef struct LNode *LinkList; // 另一种定义LinkList 的方法 // 构造一个空的线性表L int InitList(LinkList *L) { /* 产生头结点L,并使L 指向此头结点,头节点的数据域为空,不放数据的。 void * malloc(size_t) 这里对返回值进行强制类型转换了,返回值是指向空类型的指针类型。 */ (*L) = (LinkList)malloc( sizeof(struct LNode) ); if( !(*L) ) exit(0); // 存储分配失败 (*L)->next = NULL; // 指针域为空 return 1; } // 销毁线性表L,将包括头结点在内的所有元素释放其存储空间。 int DestroyList(LinkList *L) { LinkList q; // 由于单链表的每一个元素是单独分配的,所以要一个一个的进行释放 while( *L ) { q = (*L)->next; free( *L ); //释放 *L = q; } return 1; } /* 将L 重置为空表,即将链表中除头结点外的所有元素释放其存 储空间,但是将头结点指针域置空,这和销毁有区别哦。不改变 L,所以 不需要用指针。 */ int ClearList( LinkList L ) { LinkList p, q; p = L->next; // p 指向第一个结点 while( p ) // 没到表尾则继续循环 { q = p->next; free( p ); //释放空间 p = q; } L->next = NULL; // 头结点指针域为空,链表成了一个空表 return 1; } // 若 L 为空表(根据头结点L->next 来判断,为空则是空表),则返回 1, // 否则返回 0。 int ListEmpty(LinkList L) { if( L->next ) // 非空 return 0; else return 1; } // 返回 L 中数据元素个数。 int ListLength(LinkList L) { int i = 0; LinkList p = L->next; // p 指向第一个结点 while(p) // 没到表尾,则继续循环 { i++; p=p->next; } return i; } // 算法2.8 P29 // L 为带头结点的单链表的头指针。当第i 个元素存在时,其值赋给 e 并 // 返回 1,否则返回 0。 int GetElem(LinkList ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构C语言版_线性表的单链表存储结构表示和实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部