重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
函数调用结果的返回值,可以通过3个途径获得。
成都创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目成都网站制作、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元通道做网站,已为上家服务,为通道各地企业和个人服务,联系电话:18982081108
(1)函数自身返回
(2)通过函数参数返回
(3)通过全局量返回。
到底用那种方法,取决于程序员的考虑。
Node* --通过 函数自身返回,返回一个结构指针,指向 Node 型结构。
int -- 通过 函数自身返回,返回一个整型量。
CreateLinkList 是建链表,返回Node* 结构指针
GetElem 获取元素单元,返回Node* 结构指针
InsertLinkList 用 int 表示插入成功或失败,或用 int 表示什么。
这些 都 取决于程序员的考虑。 没有绝对的规定。
方法一:自己写个结构体里面有能存两个链表指针的变量
方法二:设置两个全局变量,在那个函数里用两个两个链表头地址对这两个全局变量赋值。之后直接用全局变量即可。
方法三:将两个链表头地址,压入堆栈,之后从堆栈取。
呵呵,都是手打的,没有粘贴,希望能给你有帮助
你的结构体create一定得有个参数,这个参数最好是链表头指针。
然后返回时,也是返回头指针。
#includestdio.h
#includemalloc.h
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
long num;
float score;
struct student *next;
};
int n;/*n为全局变量,本文件模块中各函数均可使用它*/
struct student *creat(void)/*定义函数。此函数带回一个指向链表头的指针*/
{
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *)malloc(LEN);/*开辟新的一个单元*/
scanf("%ld,%f",p1-num,p1-score);
head=NULL;
while(p1-num!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2-next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%ld,%f",p1-num,p1-score);
}
p2-next=NULL;
return(head);
}/*本人平时比较喜欢编写程序,我希望能和大家讨论!!QQ:510714123*/
这完全要看你怎么去写初始化链表的函数了,如果你在主函数里定义一个指向头结点的指针,那么就不需要返回,但是你传参的时候,要传的是该指针的地址,如果你在初始化的函数里面定义头节点指针那么就必须要返回了,因为你用的是malloc函数分配内,指针指向这块内存,当然要返回,不然你就不知道分配好的内存在哪里了啊
typedefstruct_List{intdata;struct_List*next;}List;intQuery(List**head,intx){List*p=(*head)-next;intn=1;while(pp-data!=x){p=p-next;n++;}if(p)returnn;elsereturn-1;}