带头结点的单链表逆置程序

qinyuanfeng 2006-02-02 01:13:38
我写了一个带头结点的单链表逆置程序,程序的执行结果没什么问题,只是要高手指点一下我写的代码有没有哪里不规范的地方?

/****************************************************************
* 文件名:nz.c (nz就是逆置!)
* 文件描述:带头结点的单链表逆置
* 创建人:沁园枫
* 创建时间:2006年2月2日
****************************************************************/
#include "stdio.h"

typedef struct Dlb /*单链表结点*/
{
int data; /*数据域*/
struct Dlb *link; /*指针域*/
}Dlb;

void main() /*主函数*/
{
Dlb *xjlb(); /*声明xjlb(新建链表)函数*/
Dlb *nzlb(Dlb *); /*声明nzlb(逆置链表)函数*/
Dlb *h,*p;
h=xjlb(); /*调用xjlb(新建链表)函数*/
p=h;
while(p->link!=NULL)/*输出新建单链表后的各元素*/
{
printf("%d",p->link->data);
p=p->link;
}
printf("\n");
h=nzlb(h); /*调用nzlb(逆置链表)函数*/
while(h->link!=NULL)/*输出逆置后的单链表各元素*/
{
printf("%d",h->link->data);
h=h->link;
}
getch(); /*调用getch函数,不知道什么意思的自己查查!*/
}

Dlb *xjlb() /*新建链表函数*/
{
Dlb *h,*l,*a;
int i;
h=(Dlb *)malloc(sizeof(Dlb));
h->link=NULL;
a=h;
for(i=0;i<5;i++)
{
l=(Dlb *)malloc(sizeof(Dlb));
l->data=i;
a->link=l;
a=a->link;
}
a->link=NULL;
return h;
}

Dlb *nzlb(Dlb *h) /*逆置链表函数*/
{
Dlb *p,*q;
p=h->link;
h->link=NULL;
while(p!=NULL)
{
q=p;
p=p->link;
q->link=h->link;
h->link=q;
}
return h;
}
...全文
1261 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinyuanfeng 2006-02-04
  • 打赏
  • 举报
回复
回楼上的,我也想不用拼音的,可是——哎,努力学习英语中……
direstrait 2006-02-03
  • 打赏
  • 举报
回复
函数名不要使用拼音所写,比如xjlb可以为NewList,nzlb可以为ReverseList
qinyuanfeng 2006-02-03
  • 打赏
  • 举报
回复
请教楼上——头结点的数据域该放什么?
qinyuanfeng 2006-02-03
  • 打赏
  • 举报
回复
谢谢楼上2位的提醒——我会把英语学好的……
搬不搬砖 2006-02-03
  • 打赏
  • 举报
回复
注释用英文会好点, 最起码不用来回切换输入法.
du51 2006-02-03
  • 打赏
  • 举报
回复
可以放长度之类的.当然也无所谓.
qinyuanfeng 2006-02-03
  • 打赏
  • 举报
回复
楼上的方法其实我也知道的,只是数据结构书上说设置一个头结点(这个结点的数据域为空),是为了让指针的改变更方便……
lbiori241 2006-02-03
  • 打赏
  • 举报
回复
头节点只不过是由头指针指着的一个节点而已,其数据域可以和其他节点一样存放数据阿
你比如说,从你的初始化函数来看,数据域放的是递增的自然数,头节点可以在开辟的时候就可以head->data = 0;然后后面只用开辟三个节点分别for(i=1;i<4;i++)就行了,这样比你上面的节省一个节点
lbiori241 2006-02-02
  • 打赏
  • 举报
回复
头结点的数据域为什么空着?
qinyuanfeng 2006-02-02
  • 打赏
  • 举报
回复
谢谢楼上的指点!我以后会注意的!
striker_un 2006-02-02
  • 打赏
  • 举报
回复
先注意。编码规范。
=号两边加个空格。
程序是给人看的。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧