1 /* 2 寻常的函数实现 3 并非类定义 4 */ 5 6 #include7 #include 8 using namespace std; 9 struct Node{10 int value;11 Node * next;12 };13 void build_link(Node * a,int n){ //建表14 Node *p;15 p=a;16 for(int i=0;i >q->value; //按顺序输入每个节点的值value19 q->next=NULL;20 p->next=q;21 p=q;22 }23 }24 bool Add(Node *a,int add_value){ //增加值为add_value的元素25 Node *tmp=(Node *)malloc(sizeof(Node));26 if(tmp==NULL) return false; //如果开辟空间不成功返回false27 tmp->value=add_value;28 tmp->next=a->next;29 a->next=tmp;30 return true; //增加元素成功31 }32 bool Clear(Node *a,int clear_value){33 while(a->next!=NULL){34 if(clear_value==(a->next->value)){35 a->next=a->next->next;36 return true; //清除值为clear_value的结点37 }38 a=a->next;39 }40 return false;//说明无法找到值为clear_value的结点,返回false41 }42 Node * Find(Node *a,int q_value){43 while(a->next!=NULL){44 if(q_value==(a->next->value)){45 return a->next; //返回值为q_value的结点的地址46 }47 a=a->next;48 }49 return NULL; //无法找到值为q_value的结点,返回false50 }51 bool change(Node *a,int now_value,int change_value){52 while(a->next!=NULL){53 if(now_value==(a->next->value)){54 a->next->value=change_value;55 return true; //说明已经将值为now_value的结点的值改为chang_value56 }57 a=a->next;58 }59 return false; //无法找到值为now_value的结点,返回false60 }61 int main(){62 Node *a=new Node; //创建头指针63 int n;64 cin>>n; //输入链表的长度n65 a->next=NULL;66 build_link(a,n);67 Node *pmax=Find(a,3); //测试查找操作68 if(Add(a,6)){ //测试增加操作69 cout<<'a'<<' '< next->value< next!=NULL){76 cout< next->value<<' ';77 tmp=tmp->next;78 }79 cout< value< value< next!=NULL){89 cout< next->value<<' ';90 tmp=tmp->next;91 }92 }else{93 cout<<"change false"<