下面是数据结构c语言版的一道练习题,要求要用栈 哪位大神会?? 内容:已知线性表 (1.2,2.

下面是数据结构c语言版的一道练习题,要求要用栈
哪位大神会??

内容:已知线性表 (1.2,2.3,3.4,4.5,5.6,6.7,7.8)。
1.将线性表的元素入队。
2.将1.2、2.3出队

#include <iostream>

#include <ctime>

//定义链表节点结构

struct Node

{

public:

Node():_val(0),_next(NULL)

{

}

Node(int val):_val(val),_next(NULL)

{

}

Node(int val,Node* next):_val(val),_next(next)

{

}

~Node()

{

if (_next)

delete _next;

}

public:

int _val;

Node* _next;

};

typedef Node* LinkNode;

//创建一个链表

Node* CreateLink(int len,int MAX_BOUND = 100)

{

srand((unsigned int)time(NULL));

LinkNode head = new Node(-1);

LinkNode tmp = head;

for (int i = 0; i < len; ++i)

{

tmp = tmp->_next = new Node(rand() % MAX_BOUND);

}

tmp->_next = NULL;

return head;

}

//链表逆转

Node* LinkListReserve(LinkNode head)

{

LinkNode p = NULL; //记录逆转节点的前一个节点;

LinkNode r = head; //记录当前节点;

LinkNode q = NULL; //记录逆转节点的下一个节点;

while (r != NULL)

{

q = r->_next; //保存下一个节点

r->_next = p; //逆转

p = r; //下一次遍历

r = q;

}

return p;

}

//打印链表数据

void Print(LinkNode head)

{

using namespace std;

cout<<".......begin......"<<endl;

while (head != NULL)

{

cout<<head->_val<<" ";

head = head->_next;

}

cout<<endl<<".......end........"<<endl;

}

int main(int argc,char* argv[])

{

Node* head = CreateLink(4);

Print(head);

Print(LinkListReserve(head));

return 0;

}追问

谢谢

这是c++ ???

😳😳

追答

是呀,,,,怎么啦

追问

兄台,有没有c语言版的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-25
实际上就是数组的使用。这样理解对吗?追问

不是的,数组和链表是不同的东西

相似回答