c#线性表中链表怎么用
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要为大家展示了"c#线性表中链表怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"c#线性表中链表怎么用"这篇文章吧。单链表也是一种链式存取的
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
小米数据库更换
企业数据库安全威胁
张掖青少年网络安全知识竞赛
java 软件开发框架
陕西电信dns服务器地址云空间
网络安全IP形象
魔兽世界五区服务器在哪
提高公司网络安全的措施
1元租服务器
魔兽登录时候怎么改默认服务器
龙岩国家网络安全
打印机服务器格式
辽宁软件开发外包价钱
酷家乐软件开发地
cad用什么软件开发的
如何把服务器下载到桌面
网络安全性的问题怎么办
查看达梦数据库是否开启远程管理
烟台纳美网络技术有限公司
网络安全工作包
永州市网络安全应急指挥
重庆工业软件开发哪家专业
魔兽世界五区服务器在哪
中国服务器简称
网络安全对公民个人的意义
内审软件开发能力
浙江安卓软件开发企业
网络安全攻防需要学什么
高校师生同上网络安全观后感
邯郸计算机软件开发如何收费