目录
本节分上下两节,主要是对链表进行一个实操演练。本章节小节记录的是数据链表的学生管理系统实现方法,主要有链表的创建、链表插入、链表遍历,此前所学还是单向链表,后续会退出单向循环链表、双向链表、双向循环链表等;
-
- int main()
- {
- helpMessage();
-
- while(1){
- char cmd[64] = "";
- cout<<"请输入操作指令: ";
- cin >> cmd;
-
- if(strcmp(cmd,"help") == 0){
- helpMessage();
- }else if(strcmp(cmd,"insert") == 0){
- cout << "-------insert-------"<
- }else if(strcmp(cmd,"print") == 0){
- cout << "-------print-------"<
- }else if(strcmp(cmd,"search") == 0){
- cout << "-------search-------"<
- }else if(strcmp(cmd,"delete") == 0){
- cout << "-------delete-------"<
- }else if(strcmp(cmd,"free") == 0){
- cout << "-------free-------"<
- }else if(strcmp(cmd,"clear") == 0){
- system("cls");
- }else if(strcmp(cmd,"quit") == 0){
- return 0;
- }
- }
- return 0;
-
- }
link.cpp
- #include "link.h"
-
- Link::Link()
- {
-
- }
-
- void helpMessage()
- {
- cout<<" *********************************"<
- cout<<" * help:帮助信息 *"<
- cout<<" * insert:插入链表节点 *"<
- cout<<" * print:遍历链表 *"<
- cout<<" * search:查询链表某个节点 *"<
- cout<<" * delete:删除链表某个节点 *"<
- cout<<" * free:释放整个链表 *"<
- cout<<" * quit:退出程序 *"<
- cout<<" * clear:清空屏幕 *"<
- cout<<" *********************************"<
- }

2.定义Node节点类型
- struct STU_NODE{
- //数据域
- int num;
- char name[32];
-
- //指针域
- STU_NODE *next;
- };
3.链表插入结点
在main函数中调用插入函数、打印函数

插入结点函数实现(头插法)
- //链表插入之 在头部之前插入(头插法)
- STU_NODE *insertLink(STU_NODE *head,STU_NODE tmp){
- //从堆区申请带插入的节点空间
- STU_NODE *pnode = new STU_NODE();
- //给空间赋值
- *pnode = tmp;
- pnode->next = nullptr;
-
- //判断链表这个结点为不为空
- if(nullptr == head){ //不存在
- head = pnode;
-
- }else{//链表存在
- pnode->next = head;
- head = pnode;
- }
- return head;
- }
插入结点函数实现(尾插法)
- //链表插入之 在尾部之后插入(尾插法)
- STU_NODE *insertLink(STU_NODE *head,STU_NODE tmp){
- //从堆区申请带插入的节点空间
- STU_NODE *pnode = new STU_NODE();
- //给空间赋值
- *pnode = tmp;
- pnode->next = nullptr;
-
- //判断链表这个结点为不为空
- if(nullptr == head){ //不存在
- head = pnode;
-
- }else{//链表存在
- //寻找尾节点
- STU_NODE *pnewnode = head;
- while(pnewnode->next != nullptr)
- pnewnode = pnewnode->next;
- //在尾节点插入pnode
- pnewnode->next = pnode;
- }
- return head;
- }
遍历链表函数实现
- void printLink(STU_NODE *head){
- if(nullptr == head){ //不存在
-
-
相关阅读:
2022 各互联网大厂面经及总结 + 大厂 Java 岗面试真题解析(进大厂必看攻略)
【C++ 学习 ㉕】- 万字详解 unordered_map 和 unordered_set(哈希表的查找和容器的模拟实现)
使用setup.py生成whl格式的自定义第三方库并安装
如何快速掌握B站数据分析,发现更多精彩内容?
Redis分布式锁
Linux网络编程学习笔记(TCP)
Mysql索引
MySQL-MVCC多版本控制及事务的隔离性
每个后端都应该了解的OpenResty入门以及网关安全实战
曲折的tensorflow安装过程(Tensorflow 安装问题的解决)
-
原文地址:https://blog.csdn.net/Phofomy/article/details/134502710
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU