主题:请教一个小问题,谢谢
fagnano
[专家分:0] 发布于 2007-03-20 19:26:00
我刚开始接触数据结构这门课,很多简单的还不懂,希望大家多帮助,谢谢。
创建一个链表,怎样给它赋初值?用c实现算法。
void InitList(LinkList *L)
{ /* 操作结果:构造一个空的线性表L */
*L=(LinkList)malloc(sizeof(struct LNode)); /* 产生头结点,并使L指向此头结点 */
if(!*L) /* 存储分配失败 */
exit(OVERFLOW);
(*L)->next=*L; /* 指针域指向头结点 */
}
然后呢?
还有在main函数里怎么写?比如我要创建一个链表,然后插入一个值,怎么写c程序?
谢谢了
回复列表 (共5个回复)
沙发
chenpengjie114 [专家分:150] 发布于 2007-03-20 20:35:00
1:定义一个struct node;
2:定义一个空链表;
3:写插入函数insertelem();
4:需要什么功能就写什么功能的函数;
多看书上的完整的例子,敲敲键盘练练,就会了!
板凳
fagnano [专家分:0] 发布于 2007-03-20 20:45:00
void InitList(LinkList *L)
这句编译的时候通不过,错在哪了?
3 楼
雨中飞燕 [专家分:18980] 发布于 2007-03-20 20:59:00
是结构LinkList没有定义吧
4 楼
咖喱炒饭 [专家分:210] 发布于 2007-03-23 20:26:00
struct LNode
{
int data;
struct LNode *next;
};
struct LNode *InitList(LNode *L)
{
L=(LNode *)malloc(sizeof(struct LNode));
if(!*L)
exit(OVERFLOW);
(*L)->next=NULL;
return *L;
}
struct LNode *InsertList(LNode *L)
{
//函数体自己写了吧!
return *L;
}
主函数:
mian()
{
struct LNode *Lhead;
Lhead=InitList(Lhead);
........
Lhead=InsertList(Lhead);
.......
}
5 楼
bpttc [专家分:8790] 发布于 2007-03-24 21:34:00
struct LNode *InitList(LNode *L)
{
L=(LNode *)malloc(sizeof(struct LNode));
if(!*L)
exit(OVERFLOW);
(*L)->next=NULL;
return *L;
}
既然都返回L了就不要参数了吧
我来回复