数据结构 - >单链表
2022/1/17 23:37:14
本文主要是介绍数据结构 - >单链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。
单链表也是线性表的一种。
先上定义
链表的初始化
输出所有链表节点
出栈
查找
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。
单链表也是线性表的一种。
画个图大家大家理解一下:
自己画的,有点丑。
那么咱可以知道一个节点包括两个域:其中储存数据元素信息的域称为“数据域”,也就是图中的date;存储直接后继存储位置的域称为“指针域”,也就是图中的next。
先上定义
#define Size 1//用于控制分配节点大小 typedef int Em; typedef struct Linklist { Em date = NULL; struct Linklist* next;//定义一个指向Linklist类的指针 }Linklist; typedef Linklist *linklist;
链表的初始化
linklist initlink()//带表头指针 { linklist head = (linklist)malloc(Size * sizeof(Linklist)); head->next = NULL; return head; } linklist Lk_push(linklist& head, Em x)//表头插入 { linklist p = (linklist)malloc(Size * sizeof(Linklist));//给节点分配内存 if (p != NULL)//如果节点不为空 { p->next = head->next; head->next = p; p->date = x; return head; } cout << "ERROR:内存分配失败" << endl; exit(0); }
输出所有链表节点
void Lk_outall(linklist& head)//输出所有节点 { linklist p = head->next; while (p!= NULL) { cout << p->date << " "; p = p->next; } cout << endl; }
出栈
linklist Lk_dele(linklist& head, Em x)//删除该节点 { linklist p = head; linklist q = head->next; while (q != NULL) { if (q->date == x) { p->next = q->next; free(q);//释放q点的内存 return head; } p = p->next; q = q->next; return head; } }
查找
linklist Lk_found(linklist& head, Em x) { linklist p = head->next; while (p != NULL) { if (p->date == x) { cout << "存在" << endl; } return head; } cout << "不存在" << endl; system("pause"); return head; }
本人小白一个,内容有瑕疵,欢迎大神投稿
这篇关于数据结构 - >单链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)