2 dongcx1234567 dongcx1234567 于 2013.10.19 01:15 提问

数据结构函数的问题求解

如果这是一个一个结构体。
typedef struct list
{
struct list *prior ;
struct list *next;
int num;
} list,*dlist;

问题1:比如我写一个创建函数,我通常是void create_list(dlist L,int n);
但是我看有的地方括号里面的第一个形参不是星号,而是&,麻烦跟我讲一下。是不是传递的不是指针,是一个对象名的引用?是不是对顺序链表这么做好一点?
问题2:上次还有人跟我说第一个形参要用二次指针,否则必须return L;才能改动L;但是我没有这么做也是对的,麻烦帮我解释一下
问题3:关于头节点,那个num是不是不用赋值,或者赋值为0或者其他?为什么啊?
问题4:同样是创建函数,我看有的地方写的是void create_list(L,n)
dlist L;int n;{

}我查了下说以前的标准支持这么写,我们老师给我们的代码中也有这么写的。昨天一个研究生让我重看一遍C语言。太打击人了。虽然我不这么定义。

1个回答

lym753024200
lym753024200   2013.10.19 11:54
已采纳

你既然知道引用就知道C++,既然会C++,就不要用C来写数据结构,用C很蹩脚,C++中用类来实现非常方便,先看你到底要用什么语言,说了我再给你慢点解释。

lym753024200
lym753024200 都是我一个人回答的,哪里还有你们这个说法。。。-.-!
4 年多之前 回复
dongcx1234567
dongcx1234567 感谢你们
4 年多之前 回复
lym753024200
lym753024200 最后:对于你的变量命名,应该用plist,表示指向list的指针(p代表pointer),记得用匈牙利命名法。如果还有不懂就提出来等下再回答你。
4 年多之前 回复
lym753024200
lym753024200 问题4:C的话就要按照C99标准,你好像是研究生,中国的一些书籍都太陈旧,你们老师都是些古董,你是新时代的接班人,你知道中国在这方面落后外国多少年么?还不就是这些书记惹得祸!你要按照新标准,希望我国IT水平能因为你们而超越时代!
4 年多之前 回复
lym753024200
lym753024200 问题3:链表如果增加一个头节点,那么头节点的数据域一般用来保存链表的大小,也就是相当于你的链表结构重的int num成员的功能。如果你增加了这个成员来存储链表大小,那么头节点数据域就可以不用赋值;如果你去掉int num,那就需要了。另外增加头节点还有一个好处就是方便增加和删除节点时候的代码编写。
4 年多之前 回复
lym753024200
lym753024200 问题2:那个是说的是错的,有些书本的作者也是二次指针,其实是写错了,一次指针就够了,这个我就不解释了。
4 年多之前 回复
lym753024200
lym753024200 对于较大的数据(比如较大的结构等),传递地址或者引用(C++中)省时间,程序运行速度快,对于基本变量,习惯上按值传递。这个和是不是链表无关,关键看传递的内容的大小,因为按值传递是要重新复制一个是实参的副本的。
4 年多之前 回复
lym753024200
lym753024200 问题1:C中是没有引用的,你说你到看的地方括号里面的第一个形参不是星号,我不知道你说函数声明还是调用,如果是声明那就是作者写错了或者是伪代码,这个你把代码弄出来我看下再给你解释!
4 年多之前 回复
dongcx1234567
dongcx1234567 我是用的c,正在学习c++。我也不想啊,可是学校里面的数据结构就用c。。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
数据结构函数
数据结构与算法分析大部分的function
学习 严蔚敏讲数据结构笔记18
遍历是所有非线性结构(包括二叉树,树,图和广义表)的操作基础 不同的应用需要应用不同的搜索路径 1.      深度优先搜索遍历 2广度优先搜索遍历 深度优先搜索遍历: 二叉树先序,中序,后序 树     先根,后根 图     先访问顶点,后访问顶点 广义表先遍历表头,先遍历表尾 深度优先搜索遍历算法的两种形式:递归,非递归 6.12已知L[i]和R[i](i=1,2,…n-1
数据结构函数的参数传递
数据结构的函数参数传递,如何在C++中使用参数传递
c函数之【数据结构函数】
点击打开链接 bsearch  (二元搜索) hcreate  (建立哈希表) hdestory (删除哈希表) hsearch  (哈希表搜索) insque   (加入一项目至队列中) lfind    (线性搜索) lsearch  (线性搜索) qsort    (利用快速排序法排列数组) rremque  (从队列中删除一项目) tdelete  (从二叉树中删除数据
linux c常用函数 (待完善)
(1)字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ASCII码字符) isblank(测试字符是否为空格字符) iscntrl(测试字符是否为ASCII码的控制字符) isdigit(测试字符是否为阿拉伯数字) isgraph(测试字符是否为可打印字符) isl
数据结构教程以及CRC校验设计
压缩包里边装有 C++ 的数据结构函数教程,以及 CRC 校验的资料
LinuxC常用数据结构及函数总结
常用的Linux C网络编程相关的数据结构和函数小总结
Linux C 第九章 数据结构函数
第九章 数据结构函数 #include <stdlib.h> #include <search.h>bsearch : void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int(*compar)(const void*, const void*));
数据结构算法实现(严蔚敏版配套实现程序)
清华严蔚敏版数据结构函数的全集实现。约150个源代码及程序~~
数据抽象和问题求解-C++语言描述(第四版)源码
很难的,在国外的ftp上找到的