|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <malloc.h>
using namespace std;
typedef int Elemtype;
typedef struct Node {
Elemtype data;
Node* next;
}node,*pnode;
struct point {
pnode head;
pnode tail;
};
point Init() {//初始化队列指针
point p;
p.tail = p.head = nullptr;
return p;
}
void InsertElem(point& p, Elemtype e) {//队尾插入元素
pnode node = (pnode)malloc(sizeof(node));
if (node) {
node->data = e;
node->next = nullptr;
}
if (p.tail) {
p.tail->next = node;
p.tail = node;
}
else {
p.head = p.tail = node;
}
}
void OutputElem(point& p) {//对头输出元素并释放空间
pnode move;
if (!p.head) {
cout << "Queue empty!" << endl;
exit(0);
}
Elemtype temp;
temp = p.head->data;
move = p.head;
p.head = move->next;
if (!p.head) {
p.tail = nullptr;
}
free(move);//这里有问题,去掉就可以运行,
cout << temp << endl;
}
int main() {
point p = Init();
for (int i = 0; i < 10; ++i) {
InsertElem(p, i);
}
for (int i = 0; i < 10; ++i) {
OutputElem(p);
}
OutputElem(p);
return 0;
}
本帖最后由 jhq999 于 2021-10-22 11:49 编辑
- void InsertElem(point& p, Elemtype e) {//队尾插入元素
- // pnode node = (pnode)malloc(sizeof(node));
- pnode node = (pnode)malloc(sizeof(Node));//sizeof(node)=4,sizeof(Node)=8;
复制代码
|
|