| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 15720 人关注过本帖, 5 人收藏
标题:[原创]链表基本操作的程序实现.
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
回复:(hyfz_825) 看到版主写下这么多的代码,真...
算法是在程序中调用的还是怎么样

算法是一个程序的灵魂,就是说是它的思想和指导这个程序应该怎么来实现.

倚天照海花无数,流水高山心自知。
2007-05-05 21:10
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
以下是引用hyfz_825在2007-5-2 23:25:06的发言:

看到版主写下这么多的代码,真是好兴奋呀!虽然学习数据结构已经有几个月了,但是还是没有弄明白那些算法,和一个程序之间有什么联系!算法是在程序中调用的还是怎么样,一直没有弄明白,请教好多同学,他们也是说不清楚的,希望你能指点一下,谢谢了!

提供一种思想,当你做软件的时候指不定遇到什么问题,打好算法基础就能不被问题难住


Viva,espana!
2007-05-06 10:28
linux_ha
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-19
收藏
得分:0 
node* merge_two_List(node *head1,node *head2)
{
node *head,*s,*p,*r;
p=head1->next;
s=head2->next;
head=(node*)malloc(sizeof(node));
head->next=NULL;
r=head->next; // r为一空指针, 我的意思是它指向的空间能被赋值吗?
while(s&&p)
{
if(p->info<s->info)
{
head1->next=p->next;
p->next=NULL;
r->next=p; // 这里进行了赋值
r=r->next;
p=head1->next;
}
...

2007-05-08 11:14
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

LS的看的蛮仔细.
我刚写了个小程序测试了一下.
#include "stdio.h"
#include "conio.h"
#include"malloc.h"

typedef struct node{
int data;
struct node *next;
}node ;
main()
{
node *head=(node *)malloc(sizeof(node));
head->next=NULL;
head->next->data=3;
printf("Hello, world%d\n",head->next->data);
getch();
}

#include "stdio.h"
#include "conio.h"
#include"malloc.h"

typedef struct node{
int data;
struct node *next;
}node ;
main()
{
node *r,*head=(node *)malloc(sizeof(node));
head->next=NULL;
r=head->next;
head->next->data=3;
printf("Hello, world%d %d\n",head->next->data,r->data);
getch();
}
总结:我认为.既然已经给r一个指针,它的初始化为空,但不能就判断它就是空指针了.两者是有区别的.不知道我这样解释对不对.

谢谢关注.请大家以后多提意见.


倚天照海花无数,流水高山心自知。
2007-05-08 22:50
chenxinfu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-14
收藏
得分:0 
回复:(nuciewth)[原创]链表基本操作的程序实现.

#include"head_node.h"

/**********************************/
/* 删除重复 */
/**********************************/

void Delete_Repeat_Node(node *head)
{
node *p,*pre,*s;
pre=head->next;
p=pre->next;
while(p)
{
s=p->next;
while(s&&s->info!=p->info)
{
s=s->next;
}
if(s)
{
pre->next=p->next;
free(p);
p=pre->next;
}
else
{
pre=p;
p=p->next;
}
}
}

这部分楼主忽略了第一个元素和后面相同的情况,修改一下吧。

2007-05-10 15:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
呵呵,我写的是带头结点的,就是说第一个结点只起引导作用没有实质意义.所以不用比较的.
谢谢建议.

倚天照海花无数,流水高山心自知。
2007-05-11 11:14
chenxinfu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-14
收藏
得分:0 
以下是引用nuciewth在2007-5-11 11:14:02的发言:
呵呵,我写的是带头结点的,就是说第一个结点只起引导作用没有实质意义.所以不用比较的.
谢谢建议
头结点空间的浪费是为了以后算法的方便,可浪费第一个结点我到现在好像还没见到啊。刚开始学这个,确实有点晕

2007-05-11 22:46
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
浪费第一个结点可以简化很多操作的,比如对头结点的判空操作,再比如修改头结点等操作.
其中如果要修改头结点的话,如果不用带头结点的,那就要使用二级指针.

倚天照海花无数,流水高山心自知。
2007-05-12 20:07
chenxinfu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-4-14
收藏
得分:0 

谢谢版主啊。你这解释我就懂了啊。


2007-05-12 23:29
xxyshow115
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-4
收藏
得分:0 

查找的那部分呢?


没什么的 没什么的 寂寞这东西 习惯了 就好了 就这样了
2007-06-06 15:54
快速回复:[原创]链表基本操作的程序实现.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016279 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved