博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单链表的修改和删除
阅读量:4085 次
发布时间:2019-05-25

本文共 2326 字,大约阅读时间需要 7 分钟。

和完了以后,如果要对链表进行修改和删除,用以下代码:

#include "stdafx.h"#include
#include
using namespace std;struct Student{ string name; string score; Student *next;//定义了指向Candidate类型变量的指针};Student * Create(Student * head){ Student *p = NULL; Student *node = NULL; int n;// cout << "请输入学生的总数:"; cin >> n; for (int i = 1; i <= n; i++){ node = new Student; cout << "请输入第" << i << "个同学的姓名:"; cin >> node->name; cout << "请输入第" << i << "个同学的成绩:"; cin >> node->score; if (head == NULL) head = node; else p->next = node; p = node; if (i == n){ p->next = NULL; } } return head;}void Print(Student * head){ Student *p = NULL; p = head; cout << "链表已经建立!" << endl; cout << "\n==========下面输入刚才的数据=============\n" << endl; int i = 1; while (p != NULL){ cout << "第" << i << "个同学===" << p->name << "==成绩====" << p->score << endl; p = p->next; i++; } cout << "\n" << endl;}void Insert(Student * head, int k){ Student *p = NULL; Student *node = NULL; p = head; if (k == 1){ node = new Student; cout << "第1位同学的名字:"; cin >> node->name; cout << "第1位同学的成绩:"; cin >> node->score; node->next = head->next; head = node; } int i = 1; while (p != NULL){ if (i + 1 == k){ node = new Student; cout << "第" << k << "位同学的名字:"; cin >> node->name; cout << "第" << k << "位同学的成绩:"; cin >> node->score; node->next = p->next; p->next = node; } p = p->next; i++; }}void Destory(Student * head){ Student *d; Student *p = NULL; p = head; while (p != NULL){ d = p; p = p->next; delete d; }}void Alter(Student * head, int k){ int i = 1; Student *p = head; while (p != NULL){ if (i == k){ cout << "第" << k << "位同学的名字:"; cin >> p->name; cout << "第" << k << "位同学的成绩:"; cin >> p->score; } p = p->next; i++; }}Student * Delete(Student * head, int k){ int i = 1; Student *p = head; Student *d = head; if (k == 1){ head = head->next; } else{ while (p != NULL){ if (i + 1 == k){ p->next = p->next->next; } p = p->next; i++; } } return head;}int main(){ Student *head = NULL; //创建链表 head = Create(head); //输出链表 Print(head); //插入数据 int k; cout << "请输入你要插入的同学的序号:"; cin >> k; Insert(head, k); //输出链表 Print(head); //修改链表 cout << "请输入你要修改的同学的序号:"; cin >> k; Alter(head, k); //输出链表 Print(head); //删除其中的一个项 cout << "请输入你要删除的同学的序号:"; cin >> k; head = Delete(head, k); //输出链表 Print(head); //销毁链表 Destory(head); return 0;}

你可能感兴趣的文章
deeplearning.ai - 序列模型和注意力机制
查看>>
Python - 网络爬虫规则
查看>>
机器学习基石 - The VC Dimension
查看>>
机器学习基石 - Noise and Error
查看>>
机器学习基石 - Linear Regression
查看>>
机器学习基石 - Logistic Regression
查看>>
机器学习基石 - Linear Models for Classification
查看>>
机器学习基石 - Nonlinear Transformation
查看>>
机器学习基石 - Hazard of Overfitting
查看>>
机器学习基石 - Regularization
查看>>
机器学习基石 - Three Learning Principles
查看>>
细枝末节的小东西
查看>>
numpy处理数据的记录
查看>>
Python 小点
查看>>
Ubantu 10.04.4 是比较老的版本,断网安装后在terminal的窗口中进行更新资源包的时候(apt-get update )会出现忽略相应网址 导致更新失败。
查看>>
工具类关闭流
查看>>
类/对象大小的计算
查看>>
智能指针shared_ptr<T>
查看>>
C语言中的结构体内存对其
查看>>
shared_ptr<T>注意事项
查看>>