如何解决如何在链表中创建一个充当“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 举报,一经查实,本站将立刻删除。