스택이 있고 지정된 요소 앞에 노드를 삽입해야하며이 코드는 작동하지만 정렬이 작동하지 않기 때문에 count 및 count1없이 코드가 필요합니다. 코드를 다시 만들 수있게 도와 주시겠습니까? 내가 코드 뭔가를 시도하지만지정된 요소 앞에 노드를 삽입하십시오.
void Stack::stackA(Item *q,Item *q1) // q - specified element, q1 - new element
{
int count=0;
int count1=0;
for (Item *i=this->first;i;i=i->next)
{
count++;
if (*i == *q) // Here we find position of the specified element
break;
}
for (Item *i=this->first;i;i=i->next)
{
Item *temp=new Item(*q1);
if(*this->first == *q) // if element first
{
this->first=temp;
temp->next=i;
break;
}
if (count1+1==count-1) //count-1,insert before specified element
{
if(i->next)
temp->next=i->next;
else
temp->next=0;
i->next=temp;
}
count1++;
}
}
왜 std :: stack이 아닌 사용자 정의 단일 링크 목록 (오류가 발생하기 쉬운)을 사용하고 있습니까? –