#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node* next;
};
void printlist(struct node* phead)//打印
{
struct node* pmove=phead;
while(pmove!=NULL)
{
printf("%d",pmove->data);
pmove=pmove->next;
}
}
void insertbytail(struct node** phead,int x)//尾插
{
struct node* newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=x;
newnode->next=NULL;
struct node* tail=*phead;//定义一个指针tail指向第一个结点
if(*phead==NULL)
{
phead=newnode;
}
else
{
while(tail!=NULL)
{
tail=tail->next;
}
tail->next=newnode;
}
}
void structtest()
{
struct node plist=NULL;
insertbytail(&plist,1);
insertbytail(&plist,2);
printlist(plist);
}
int main()
{ void structtest();
structtest();
system("pause");
return 0;
}
c上无表头的单链表
代码可以运行,但是没有结果。
能不能指出问题并在我的代码基础上改正。
无表头的单链表打印不出结果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qfl_sdu 2022-10-02 23:09关注
insertbytail()函数中,while(tail!=NULL) 这里改成 while(tail->next!=NULL)
运行结果如下:完整代码如下:
#include<stdio.h> #include<stdlib.h> struct node { int data; struct node* next; }; void printlist(struct node* phead)//打印 { struct node* pmove=phead; while(pmove!=NULL) { printf("%d",pmove->data); pmove=pmove->next; } } void insertbytail(struct node** phead,int x)//尾插 { struct node* newnode=(struct node*)malloc(sizeof(struct node)); newnode->data=x; newnode->next=NULL; struct node* tail=*phead;//定义一个指针tail指向第一个结点 if(*phead==NULL) { *phead=newnode; } else { while(tail->next!=NULL) { tail=tail->next; } tail->next=newnode; } } void structtest() { struct node* plist=NULL; insertbytail(&plist,1); insertbytail(&plist,2); printlist(plist); } int main() { void structtest(); structtest(); system("pause"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度