首页 > 代码库 > 线性表[ACM] (有bug)有待修改
线性表[ACM] (有bug)有待修改
1 #include "iostream" 2 #include "string" 3 using namespace std; 4 5 typedef struct node{ 6 string data; 7 struct node *next; 8 node(string str){ 9 data=http://www.mamicode.com/str; 10 next=NULL; 11 } 12 13 }Node; 14 15 16 Node *head=new node("hfirst"); 17 Node *back=new node("bfirst"); 18 Node *current=NULL; 19 Node *pre=head; 20 21 22 void add(string str){ 23 Node *temp; 24 if(back->data=http://www.mamicode.com/="bfirst") 25 temp=new Node(str); 26 else{ 27 temp=back->next; 28 back->next=temp->next; 29 temp->data=http://www.mamicode.com/str; 30 temp->next=NULL; 31 } 32 temp->next=head->next; 33 head->next=temp; 34 current=temp; 35 } 36 37 void move(int p){ 38 int i=0; 39 for(;i<p;i++){ 40 pre=current; 41 if(current==NULL){ 42 cout<<"worng!!!"<<endl; 43 current=head->next; 44 pre=head; 45 break; 46 } 47 else 48 current=current->next; 49 } 50 51 } 52 53 void del(int i){ 54 Node *temp=current; 55 Node *tp; 56 while(i!=0&¤t!=NULL){ 57 tp=current; 58 current=current->next; 59 } 60 if(current==NULL){ 61 back->next=pre->next; 62 pre->next=NULL; 63 pre=head; 64 current=head->next; 65 } 66 else{ 67 pre->next=current; 68 temp->next=back->next; 69 back->next=temp; 70 } 71 72 } 73 void _print(){ 74 cout<<current->data; 75 } 76 77 78 void main(){ 79 string choice,str; 80 int i; 81 while(1){ 82 cin>>choice; 83 if (choice==("ADD")){cin>>str;add(str);} 84 if (choice==("MOVE")){cin>>i;move(i);} 85 if (choice==("DEL")){cin>>i;del(i);} 86 if (choice==("PRINT"))_print(); 87 } 88 getchar(); 89 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。