插入算法的主要步骤(Exam 1.cpp)(1)判断插入位置是否正确,否则结束算法;(2)申请一个新结点,判断有无内存(表满否)(3)插入元素放入数据域,NULL放入指针域;(4)判断是否插入在表头,若是表头,则修改head和新结点指针;结点与结点之间;(5)寻找插入位置, (6)修改结点的增针域和新结点指针域;ai-115
15 (1)判断插入位置是否正确,否则结束算法; (2)申请一个新结点,判断有无内存(表满否); (3)插入元素放入数据域,NULL放入指针域; (4) 判断是否插入在表头,若是表头,则修改 head和新结点指针; (5) 寻找插入位置, 结点与 结点之间; (6) 修改 结点的指针域和新结点指针域; 插入算法的主要步骤(Exam 1.cpp) i 1 a − i 1 a − i a
·(1)判断插入位置是否正确,否则结束算法;template<class datatype>bool LisT<datatype>::insert data(datatype data,inti){ NODE<datatype> *current,*previous,*newnode;if(i>length0+1 1 i<=0)cout<<“插入位置不正确,不能插入!\n";return false;116
16 (1)判断插入位置是否正确,否则结束算法; template<class datatype> bool LIST<datatype>::insert_data(datatype data,int i) { NODE <datatype> *current,*previous,*newnode; if( i>length()+1 || i<=0 ) { cout<<“插入位置不正确,不能插入!\n”; return false; }
·(2)申请一个新结点,判断有无内存(表满否);/电请新结点空间newnode=new NODE <datatype> ;if(newnode==NULL)[cout<<“内存无空间,表已满,不能插入!\n";return false;117
17 (2)申请一个新结点,判断有无内存(表满否); //申请新结点空间 newnode=new NODE <datatype> ; if(newnode==NULL) { cout<<“内存无空间,表已满,不能插入!\n”; return false; }
·(3)插入元素放入数据域,NULL放入指针域;newnode->data=data;newnode->next= NULL;·(4)判断是否插入在表头,若是表头,则修改head和新结点指针;if(i==1)newnode->next=head;head=newnode;return true;?18
18 (3)插入元素放入数据域,NULL放入指针域; newnode->data=data; newnode->next= NULL; (4) 判断是否插入在表头,若是表头,则修改head 和新结点指针; if(i==1) { newnode->next=head; head=newnode; return true; }
结点与结点之间;。(5)寻找插入位置,α;-1a·(6)修改αi-1结点的指针域和新结点指针域current=previous=head;int j=1;while(current!=NULL&&j<i)//寻找插入位置previous=current;current=current->next;j++;}/修改新结点指针域newnode->next=current;previous->next=newnode;//修改a--结点的指针域return true; }19
19 (5) 寻找插入位置, 结点与 结点之间; (6) 修改 结点的指针域和新结点指针域. current=previous=head; int j=1; while(current!=NULL&&j<i) //寻找插入位置 { previous=current; current=current->next; j++; } newnode->next=current; //修改新结点指针域 previous->next=newnode; //修改 结点的指针域 return true; } i 1 a − i 1 a − i 1 a − i a