#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无用
悬赏问题
- ¥15 QTableWidget重绘程序崩溃
- ¥15 51寻迹小车定点寻迹
- ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
- ¥15 麒麟V10桌面版SP1如何配置bonding