要用malloc函数和单链表insert,还有要怎么证明这个插入函数在整个管理系统中是正确的?求大佬解答!拜托啦!!!
2条回答 默认 最新
- 一颗小码农 2021-07-03 03:30关注
插入函数
void Insert() { cout << "输入要插入的序号为" << endl; node* p = new node; cin >> p->data; p->next = NULL; cout << "输入在哪个序号前插入" << endl; int t; cin >> t; node* q = head->next, * o = head;//o记录q的前一个结点 while(q) { if(q->data!=t) { o = o->next; q = q->next; } else { p->next = q; o->next = p; break; } } if(q==NULL)cout << "序号输入有误" << endl; else { cout << "插入后结果如下" << endl; for (node* p = head->next; p; p = p->next) cout << p->data<<'\t'; cout << endl; } }
完整验证代码
#include<iostream> using namespace std; typedef struct node { int data; node* next; }; class List { private: node* head, * last; public: List()//初始化 { head = new node; head->next = NULL; last = head; } void CreateList()//链表创建 { cout << "节点数" << endl; int n; cin >> n; cout << "输入结点序号" << endl; for (int i = 0; i < n; ++i) { node* p = new node; cin >> p->data; //尾插法 last->next = p; last = p; } last->next = NULL; } void OutCome() { cout << "链表数据如下" << endl; for (node* p = head->next; p; p = p->next) cout << p->data << '\t'; cout << endl; } void Insert() { cout << "输入要插入的序号为" << endl; node* p = new node; cin >> p->data; p->next = NULL; cout << "输入在哪个序号前插入" << endl; int t; cin >> t; node* q = head->next, * o = head;//o记录q的前一个结点 while(q) { if(q->data!=t) { o = o->next; q = q->next; } else { p->next = q; o->next = p; break; } } if(q==NULL)cout << "序号输入有误" << endl; else { cout << "插入后结果如下" << endl; for (node* p = head->next; p; p = p->next) cout << p->data<<'\t'; cout << endl; } } }; int main() { List l; l.CreateList(); l.OutCome(); l.Insert(); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 乌班图ip地址配置及远程SSH
- ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
- ¥15 PSPICE制作一个加法器
- ¥15 javaweb项目无法正常跳转
- ¥15 VMBox虚拟机无法访问
- ¥15 skd显示找不到头文件
- ¥15 机器视觉中图片中长度与真实长度的关系
- ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
- ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
- ¥15 java 的protected权限 ,问题在注释里