c语言链表定义在头文件吗,c语言定义动态链表

2009-03-01 回答

#include

#include

struct date//申明结构体

{

char str;

date *next;//用来指向下一个结构体指针

};

int main()

{

date *ps,*pe,*head = null;//定义三个结构体指针,head用来保存链头,pe保存链尾

date *rhead = null;//定义读取结构体指针

pe = head;//刚开始没有任何结点,指向表头

char temp;

do

{

scanf("%c",&temp);

if (temp != '#')

{

ps = new date;//新建结点

ps->str = temp;//给新结点赋值数据

ps->next = null;//让指向下一个为空(新结点,也就是新链尾)

if (head==null)//如果链表还没有任何结点存在

{

head = ps;//就把新结点地址给head

}

else

pe->next = ps;//把新结点连接到链尾

/*

第一次不执行,而到第二次pe就是上一次的ps

而pe->next让其指向下一次的ps

*/

pe = ps;//新结点成为了新的链尾

}

} while (temp != '#');

printf("\n刚才输入的是:\n");

rhead = head;//取得链头

/*

当然也可以直接用head不过这样就会改变其值,而无法再次查找链表

切忌链头的重要性,只要找不到链头,整条链表就没用!

*/

while (rhead != null)//循环到链尾

{

printf("%c",rhead->str);

if (rhead!=null)

{

rhead = rhead->next;//让其指向下一个链表

}

}

while (head!=null)//清除链表

{

date *p;

p = head;//把要删除的链给临时变量

head= head->next;//先连

delete p;//后断

/*

不管是插入,删除还是清除链表都要遵循"先连后断"

*/

}

printf("\n");

getch();

return 0;

}

//这个是我以前写的一个链表的例子,给你个参考吧...只需改一小点就行了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值