数据结构 链表的实现(C语言)
来源:互联网 发布:网络硬盘播放器 编辑:程序博客网 时间:2024/04/19 13:27
#include <stdio.h>#include <stdlib.h>#include <malloc.h>/* 单链表*//* run this program using the console pauser or add your own getch, system("pause") or input loop */typedef struct LNode{ int data; //数据域 struct LNode * next; //指针域 }LNode,*LinkList;//创建(后插法)LinkList create(){ int i; int len; int val; LinkList list = (LinkList)malloc(sizeof(LNode)); if(list==NULL){ printf("内存分配失败\n"); exit(-1); } list->next = NULL; printf("长度为:"); scanf("%d",&len); printf("\n"); LinkList r = list; for(i=0;i<len;i++){ LinkList p = (LinkList)malloc(sizeof(LNode)); printf("数据为:"); scanf("%d",&val); p->data = val; p->next = NULL; r->next = p; r = p; } return list;}//遍历void traverse(LinkList list){ while(list->next!=NULL){ printf("%d ",list->next->data); list = list->next; }}//取值int getEle(LinkList list,int i ){ LinkList p = list; //p指向头结点 int j = 0; if(i<0||p->next == NULL){ printf("i不合法或链表为空"); exit(-1); } while(p->next&&j<i){ p = p->next; ++j; } int e = p->data; return e; }//插入void insert(LinkList list,int i,int val){ LinkList p = list; int j = 0; while(p->next&&j<i-1){ p = p->next; ++j; } if(!p->next||j>i-1){ printf("i不合法\n"); } LinkList s = (LinkList)malloc(sizeof(LNode)); s->data = val; s->next = p->next; p->next = s;}//删除void deleteEle(LinkList list,int i){ LinkList p = list; int j =0; while(p->next&&j<i-1){ p = p->next; ++j; } if(!p->next||j>i-1){ printf("i不合法"); } LinkList s = p->next; p->next = s->next; free(s);}//按值查找序号(地址)void LocateElem(LinkList list,int ele){ LinkList p = list; while(p->next!=NULL){ p = p->next; if(ele == p->data){ printf("%p",p); } }}//计算长度int getLength(LinkList list){ LinkList p = list->next; int j = 0; while(p!=NULL){ ++j; p = p->next; } return j;}int main(int argc, char *argv[]) { LinkList list = NULL; list = create(list); //insert(list,1,222); //deleteEle(list,2); traverse(list); //int e = getEle(list,3); //LocateElem(list,3); //int len = getLength(list); //printf("length = %d",len); return 0;}
1 0
- C语言实现数据结构的链表
- 数据结构 链表的实现(C语言)
- <数据结构>链栈的C语言实现
- [c语言]数据结构 顺序表的实现
- C语言数据结构_链表的实现
- [数据结构]C语言链表实现
- 【数据结构】C语言实现顺序链表
- 【数据结构】C语言实现链表
- C语言数据结构-栈-链表实现
- C语言实现LinkedList链表数据结构
- [数据结构]C语言链表实现
- 【数据结构】数据结构C语言的实现(线性表)
- 数据结构 C语言实现 线性表的链式实现
- 数据结构:顺序表的实现(C语言实现)
- 数据结构(C语言实现)
- 数据结构C语言实现
- 数据结构(C语言实现)
- C语言数据结构 链表的合并
- 单击文本框显示隐藏提示文本,失去焦点时再显示提示文本
- android developer tiny share-20160921
- MVC封装之二(2-7)
- Android多媒体播放过程介绍
- 电脑经验 win7 cmd窗口打开指定盘中的一个txt文件
- 数据结构 链表的实现(C语言)
- 学习总结:jQuery插件——Validation Plugin
- PAT 1001. A+B Format (20)
- 数据库方向的三大顶级国际会议
- Android Cannot merge new index 67208 into a non-jumbo instruction
- Java中Service层MOCK测试
- Java源码解析(附录)(4) —— GenericArrayType
- C++函数参数带省略号
- Android N App分屏模式完全解析(上)