请问为什么数据域为2的结点最后输出的是指针?

#include
#include

typedef int DataType; //定义单链表的数据类型为整型
struct Node {
DataType data; //数据域
struct Node* next; //指针域
};
typedef struct Node *PNode; //定义指向结构体的PNode类型
typedef struct Node *LinkList; //定义链表类型

LinkList CreateList_Tail_loop( )// 尾插法建立单循环链表
{
LinkList head=(LinkList)malloc(sizeof(struct Node));
PNode cur=NULL;
PNode tail=head;
DataType data;
scanf("%d",&data);
while(data != -1)
{ //分配空间,赋值
cur=(struct Node*)malloc(sizeof(struct Node));
cur->data=data;
tail->next=cur;
tail = cur;
scanf("%d",&data);
}
tail->next=head;
return tail;
}

void print(LinkList tail) //输出单链表
{
PNode head=tail->next;
PNode p=head->next;
while(p!=head)
{
printf("%d\n", p->data);
p=p->next;
}
}

void DestoryList_Link(LinkList tail)//释放单链表
{
PNode pre = tail;
PNode p = tail->next;
while (p!=tail)
{
free(p);
p = p->next;
}
free(tail);
}

void Move_Odd_Even(LinkList tail)
{
PNode head=tail->next;
PNode p,q,m;
PNode pre;
p=head->next;
pre=head;
while(p->data%2!=0)
{
pre=p;
p=p->next;
}
m=p;
q=p;
p=p->next;
pre->next=q->next;
tail->next=q;
q->next=head;
tail=q;
while(p!=m)
{
if(p->data%2==0)
{
q=p;
p=p->next;
pre->next=q->next;
tail->next=q;
q->next=head;
tail=q;
continue;
}
pre=p;
p=p->next;
}
}

int main()
{
LinkList tail=NULL;
tail=CreateList_Tail_loop();
Move_Odd_Even(tail);
print(tail);
DestoryList_Link(tail);
return 0;
}

1个回答

Move_Odd_Even 算法不对,具体不看了,你可以参考:
https://blog.csdn.net/u010817474/article/details/48498139

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

1
Creat函数为什么会错呢?
0
菜单式系统求大佬帮忙更改
1
单_循环链表_最后连接部分不理解
3
C语言链表头结点的数据域指针域都为NULL的时候头结点指针是NULL吗?
2
很简单的一个关于单链表的问题
0
在单链表中统计某区域内的元素,将获得元素插入新单链表,并打印新链表元素在原链表中的序号
1
请问建立链表并赋值,再遍历输出,输出的结果带有一串乱码是为什么呢?
0
数据结构相关问题,一直没有找到错误。代码哪里出错了呢?
2
(C语言)在二叉搜索树的学习时遇到了问题,求大佬帮忙看看
1
数据结构问题:一棵普通的树转化成二叉树,为什么输出的时候无法输出呢(是我转化没有成功吗)?
2
静态链表为什么实现不了数据反转,哪里错了,具体的代码如何实现?
0
单链表实现的多项式加减法计算,输入的负号变成了正号,并且幂为负时显示错误,这个程序应该怎么改?
1
函数releaselinklist()和finishprogram()的具体代码是不是这样写的?有什么其他错误请指教一下?
1
初学者提问:链表相关问题
1
为什么键盘输入字符串和文件导入字符串都有错?错误应该怎么改?
5
代码没有错误,为什么程序没运行完就直接结束了?
1
写了链表插入函数 主函数却没实现插入功能
4
C++链表头指针位置不知为什么出错
1
学习C语言版数据结构(严蔚敏版)时,按位获取单链表的值失败,怎么解决。