微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在链表中创建一个充当“stack.push(Node* temp)”的函数?

如何解决如何在链表中创建一个充当“stack.push(Node* temp)”的函数?

我想创建一个函数,通过使用堆栈模型而不是使用类“堆栈”来反转链表。我被困在创建一个函数 stack.push(Node temp)*;

那么如何创建一个充当 stack.push(Node* temp) 的函数

例如,如果我使用类堆栈,第 5 行 S.Push(temp) 接受 Node* temp。

void Reverse() {
stack <Node*> S;
Node*temp = Head;
while(temp != NULL){
 S.push(temp);
 temp = temp->next;
}

temp = S.top();
Head = temp;
S.pop();

while(!S.empty()){
 temp->next = S.top();
 S.pop();
 temp = temp->next;
}
temp->next = NULL;

}

我创建的内容

class stacks{
 public: 
 //constructor 
 stacks(){
   Node* top = NULL;
  }

  void Push(Node* x){
     struct Node* y;
     if(y==NULL){
        y = x;
     }
     else
     while(y->next == NULL){
        y = y->next;
     }
     y->next = x;
 }  

 void Reverse() {
   stacks tempo;
   //top is already set as global variable
   Node* temp = top;

   while(temp != NULL){
     tempo.Push(temp);
     temp = temp->next;
   }

   top=tempo.Top();
   tempo.Pop();
   temp->next = tempo.Top();
   while(!tempo.empty())
  {
   temp = temp->next;
   tempo.Pop();
   temp->next = tempo.Top();
   }
   temp->next = NULL;
   }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。