c#线性表中链表怎么用
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要为大家展示了"c#线性表中链表怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"c#线性表中链表怎么用"这篇文章吧。单链表也是一种链式存取的
千家信息网最后更新 2024年11月11日c#线性表中链表怎么用
这篇文章主要为大家展示了"c#线性表中链表怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"c#线性表中链表怎么用"这篇文章吧。
单链表也是一种链式存取的线性表,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,以next指针指向下一个节点而链接起来,相比于顺序表,链表有着快速增加,删除节点的优势,其节点的随机访问效率较低。
头文件:
/***************************************************************************************************** *Copyright:Yue Workstation * *FileName:LineTable.h * *Function:单链表相关数据定义和函数声明 *****************************************************************************************************/ #ifndef SINGLE_LIST_H #define SINGLE_LIST_H #include "global.h" typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; int CreateSingleList(LinkList *L,int n); void PrintSingleList(LinkList L); int InsertSingleList(LinkList *L,int i,ElemType e); int DeleteSingleList(LinkList *L,int i,ElemType *e); int GetSingleListLength(LinkList L); void DestroySingleList(LinkList *L); #endif
源文件:
/***************************************************************************************************** *Copyright:Yue Workstation * *FileName:SingleList.c * *Function:单链表基本操作 *****************************************************************************************************/ #include "../inc/SingleList.h" /**************************************************************************************************** *Function Name:CreateSingleList * *Function:创建一个单链表 * *Parameter: L:单链表表头, * n:单链表长度 * *Return Value:成功返回0,失败返回-1 ***************************************************************************************************/ int CreateSingleList(LinkList *L,int n) { int i = 0; LinkList p1,p2; *L = (LinkList)malloc(sizeof(LNode)); if(*L == NULL) { perror("malooc error\n"); return -1; } (*L)->data = 0; (*L)->next = NULL; p1 = *L; p2 = *L; for(i=1; i<=n; i++) { p1 = (LinkList)malloc(sizeof(LNode)); if(p1 == NULL) { perror("malooc error\n"); return -1; } p1->data = i; p2->next = p1; p2 = p1; } p2->next = NULL; (*L)->data = n; return 0; } /**************************************************************************************************** *Function Name:PrintSingleList * *Function:打印单链表表中的元素 * *Parameter: L:单链表表头 * *Return Value:无 ***************************************************************************************************/ void PrintSingleList(LinkList L) { L = L->next; while(L) { printf("%d---",L->data); L = L->next; } putchar('\n'); return ; } /**************************************************************************************************** *Function Name:InsertSingleList * *Function:在i位置插入一个元素e * *Parameter: L:单链表表头, * i:元素位置 * e:要插入的元素 * *Return Value:成功返回0,失败返回-1 ***************************************************************************************************/ int InsertSingleList(LinkList *L,int i,ElemType e) { LinkList p1 = (*L)->next; LinkList p2 = (*L)->next; int j = 1; while(p1 && jnext; ++j; } if(!p1 || j>i-1) { perror("Insert position error,the parameter i is error!\n"); return -1; } p2 = (LinkList)malloc(sizeof(LNode)); p2->data = e; p2->next = p1->next; p1->next = p2; (*L)->data += 1; return 0; } /**************************************************************************************************** *Function Name:DeleteSingleList * *Function:在制定位置删除单链表中的元素 * *Parameter: L:单链表表头, * i:元素位置 * e:要插入的元素 * *Return Value: 成功返回0,失败返回-1 ***************************************************************************************************/ int DeleteSingleList(LinkList *L,int i,ElemType *e) { LinkList p1 = (*L)->next; LinkList p2 = NULL; int j = 1; while(p1 && j next; ++j; } if(!p1 || j>=i) { perror("Delete position error,the parameter i is error!\n"); return -1; } p2 = p1->next; p1->next = p2->next; *e = p2->data; free(p2); (*L)->data -= 1; return 0; } /**************************************************************************************************** *Function Name:GetSingleListLength * *Function:获取单链表长度 * *Parameter: L:单链表表头 * *Return Value:单链表长度 * ***************************************************************************************************/ int GetSingleListLength(LinkList L) { if(L == NULL) { return -1; } return L->data; } /**************************************************************************************************** *Function Name:DestroySingleList * *Function:销毁一个单链表 * *Parameter: L:单链表表头 * ***************************************************************************************************/ void DestroySingleList(LinkList *L) { LinkList p1 = *L; LinkList p2 = *L; while(p1 != NULL) { p2 = p1; p1 = p1->next; free(p2); } *L = NULL; return; }
以上是"c#线性表中链表怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
元素
线性
位置
c#
成功
内容
数据
篇文章
节点
长度
学习
帮助
优势
函数
单元
地址
基本操作
指向
指针
效率
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山航应用软件开发
数据泵导入数据库
勤哲服务器安全吗
软件开发与平面设计哪个工资高
qt数据库分页查询实现
检察官小说软件开发
西安软件开发工作哪里好找
专利和相关文献数据库有哪些
附加数据库时5120
向美而生互联网科技
财政网络安全技术要求
数据库人物关系设计
服务器不自检
金融数据库sql
软件开发过程选择
下列哪种语句可以删除数据库
江西软件开发解决方案报价
上海网络技术员待遇
电脑服务器按钮坏了开不了机
一个服务器多少度电
茂名通用戴尔服务器
银行软件开发岗位西安招聘
我的世界ice服务器一日游
查询类数据库用什么软件开发好
论文查重用的是哪个数据库
数据库安全性4种权限
沈阳物流软件开发收费多少
数据库 表 输入数据库
用网络安全知识画小学生的画
高速公路监控网络安全