一个低级问题。。ps(刚学c++)希望大家用c++帮我做一个桶,要实现能插入,删除,摧毁。。因为是刚学。。不懂,,希望大
一个低级问题。。ps(刚学c++)
希望大家用c++帮我做一个桶,要实现能插入,删除,摧毁。。因为是刚学。。不懂,,希望大家能帮帮我。。
[解决办法]
网上很多示例,自己边学边改
[解决办法]
- C/C++ code
#include "stdio.h"#include "stdlib.h"struct Node{ int data; struct Node * next;};/*创建链表*/Node * Create(){ int n=-1; Node *head,*p1,*p2; p1=new Node; printf("请输入数据"); scanf("%d",&p1->data); head=NULL; while(p1->data!=-1) { if(n==-1) { head=p1; } else p2->next=p1; p2=p1; p1=new Node; scanf("%d",&p1->data); n++; } p2->next=NULL; return head;}/*显示链表*/void Show(Node * head){ Node *p1; p1=head; while(p1!=NULL) { printf("%d\n",p1->data); p1=p1->next; }}/*删除链表中元素*/int del(Node *head,int p){ Node * tmp=head; for(int i=0;i<p;i++) { if(tmp==NULL) return -1; if(i<p-1) tmp=tmp->next; } int ret=tmp->next->data; tmp->next=tmp->next->next; return ret; }/*插入链表元素*/void insert(Node * head,int p,int x){ Node * tmp=head; for(int i=0;i<p;i++) { if(tmp==NULL) return ; if(i<p-1) tmp=tmp->next; } Node *tmp2=new Node; tmp2->data=x; tmp2->next=tmp->next; tmp->next=tmp2;}int _tmain(int argc, _TCHAR* argv[]){ Node *p;int locnum,data; char choicenum; while(true) { printf("*****************学生信息管理系统*****************\n"); printf("a.创建学生链表\n"); printf("b.插入学生信息\n"); printf("c.删除学生信息\n"); printf("d.显示学生信息\n"); printf("e.退出\n"); printf("**************************************************\n"); printf("请输入您选择的功能代号\n"); scanf("%c",&choicenum); if(choicenum=='a') { p=Create(); } else if(choicenum=='b') { printf("请输入要插入数据的位置\n"); scanf("%d",&locnum); printf("请输入插入的数据"); scanf("%d",&data); insert(p,locnum,data); } else if(choicenum=='c') { printf("请输入要删除数据的位置\n"); scanf("%d",&locnum); del(p,locnum); } else if(choicenum=='d') { printf("学生信息:"); Show(p); } else if(choicenum=='e') { break; } else { printf("请输入正确的序号\n"); } } return 0;}
[解决办法]
发了,请查看 