c#线性表中链表怎么用
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要为大家展示了"c#线性表中链表怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"c#线性表中链表怎么用"这篇文章吧。单链表也是一种链式存取的
千家信息网最后更新 2026年11月04日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 && jnext; ++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安全错误
数据库的锁怎样保障安全
互联网与科技
重生之互联网科技帝国
新华互联网科技学院
科技互联网技术
互联网科技开发公司
上海互联网科技有限公司
嘟嘟瓜互联网科技
碳银互联网科技
卓越科技(互联网 )
互联网科技论坛
西藏七维空间互联网科技有限公司
广州新华互联网科技学校电竞方面
华夏恒生科技与互联网科技
深圳艾果互联网通讯科技
山东有哪些互联网科技公司
21世纪互联网科技成就
宁波跨境商互联网科技有限公司
互联网对科技影响
科技互联网专业务虚会材料
现代科技的标志之一的互联网
百单网互联网科技有限公司怎么样
金融科技 互联网金融
智慧科技互联网
居家互联网科技有限公司
阿大互联网科技有限公司
链环科技传统企业怎么转型互联网
陕西云淼互联网科技公司
35岁以上互联网科技行业
广西科技产业互联网是什么
数字互联网科技有限公司