单链表的修改和删除
来源:互联网 发布:黑马程序员javaee培训 编辑:程序博客网 时间:2024/06/14 06:07
单链表建立和单链表的插入完了以后,如果要对链表进行修改和删除,用以下代码:
#include "stdafx.h"#include<iostream>#include<string>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;elsep->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;}
0 0
- 单链表的修改和删除
- DataGrid的删除和修改
- Hibernate 统一的修改和删除源码
- LitePal的修改和删除操作(三)
- mysql的插入,查询,修改和删除
- LitePal的修改和删除操作
- solr 实现数据的删除和修改
- MYSQL表的创建,修改和删除
- Oracle 视图的创建删除和修改
- 数据库及表的修改和删除
- 数据库及表的修改和删除
- 修改和删除表
- 修改和删除
- PHP 修改和删除XML内容的原理和方法
- DataGrid的修改、删除
- DataGrid的修改、删除
- DataList的修改删除
- GridView的删除修改
- 同步函数,静态同步函数,同步代码块
- Struts2中加载国际化资源文件的顺序
- 教你学会java基础多线程系列文章之中级篇(一)
- 选微博的还是京东的php开发的offer?
- bpptstrao popover data-container 无效
- 单链表的修改和删除
- 鼠标不能拖动文件
- struts2运行流程深层总结
- Numbers
- 网际协议
- android自定义控件报错解决方法
- HDOJ 5585 Numbers (水)
- 6. 尚硅谷_佟刚_JavaWEB_ServletConfig 对象.wmv
- java中ThreadLoacl解析