线性表的链式存储及相关操作 C语言版
来源:互联网 发布:白无常电商美工教学 编辑:程序博客网 时间:2024/04/30 19:39
/*线性表的链式存储实现及相关操作 C语言版本作者:Shmily日期:2011年8月30日编译环境 VC++6.0带头结点的单链表,结点的下标从1开始*//**************************************************/#include <stdio.h>#include <stdlib.h>#include <malloc.h>/**************************************************/#defineOK1#define ERROR0#define TRUE1#defineFALSE0typedefintStatus;typedef intElemType;/**************************************************/typedef struct node{ElemTypedata;//数据域struct node *next;//指针域}Node, *pNode;/**************************************************///创建一个带头结点的空的单链表pNode CreateListHead(void){pNode L = (pNode)malloc(sizeof(Node));if (!L)exit (-1);L->next = NULL;return L;}/**************************************************///输出单链表void DisLinkList(pNode L){pNode p = L->next;while (p){printf("%d ", p->data);p = p->next;}}/**************************************************///求单链表的长度int ListLength(pNode L){pNode p = L->next;int k=0;while (p){p = p->next;++k;}return k;}/**************************************************///取得链表中第pos个结点的值并存入e中Status GetElem(pNode L, int pos, ElemType *e){pNode p=L->next;int i=1;while (p && i<pos){p = p->next;++i;}if (!p || i>pos)return ERROR;*e = p->data;return OK;}/**************************************************///在链表中的第pos个位置插入一个值为e的结点Status ListInsert(pNode L, int pos, ElemType e){pNode p = L;pNode pNew;int i=1;while (p && i<pos){p = p->next;++i;}if (!p || i>pos)return ERROR;pNew = (pNode)malloc(sizeof(Node));pNew->data = e;pNew->next = p->next;p->next = pNew;return OK;}/**************************************************///删除链表L中的第pos个结点并将该结点的值存入e中Status ListDelete(pNode L, int pos, ElemType *e){pNode p = L;pNode q;int i=1;while (p->next && i<pos){p = p->next;++i;}if (!(p->next) || i>pos)return ERROR;q = p->next;p->next = q->next;*e = q->data;free(q);return OK;}/**************************************************/int main(void){pNode L;ElemType e;int pos=7;L = CreateListHead(L);return 0;}/**************************************************/
- 线性表的链式存储及相关操作 C语言版
- 线性表的链式存储C语言版
- 线性表的顺序存储实现及相关操作 C语言版
- 线性表的顺序存储实现及相关操作 C语言版
- 线性表的链式存储及相关操作
- 【线性表】顺序存储、链式存储的实现及操作
- 线性表的链式存储结构及操作
- 【C语言版数据结构】线性表的单链表有关的相关操作
- 线性表的顺序存储结构C语言版
- 线性表的顺序和链式存储表示及基本操作的实验
- (一)线性表的链式实现及相关操作实现
- 线性表的链式存储
- 线性表的链式存储
- 线性表的链式存储
- 线性表的链式存储
- 线性表的链式存储
- 线性表的链式存储
- 线性表的链式存储
- as3.0编程环境
- 动态添加/删除spinner菜单
- LINUX下PHP扩展模块的开发和测试(原创)
- Python 连接 Oracle
- 数据结构之两个线性表的合并
- 线性表的链式存储及相关操作 C语言版
- JMS : Java Message Service (Java消息服务)
- 分析谷歌收购摩托罗拉无线对移动产业带来的影响
- 动态改变 Label
- Suse linux 安装vw-tools
- Objective-C内存管理总结 iphone
- GVIM配置
- Java风格
- 错误: In doing so, the sorting sequence - determined by the table key - was destroyed. 之解决