怎样在C语言中正确运用链表??链表的使用需要注意哪些要点?? 5

 我来答
fenghuaster
2011-12-29 · TA获得超过426个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:254万
展开全部
1.使用链表时候,先确认要使用的是单向链表,还是双向链表,或者是循环链表。一定要初始化。
2.添加节点时候,要注意是否队列已满。
3.删除节点的时候,要注意队列是否为空。
4.要有可以判断链表是否为空的函数。
5.要有可以判断链表节点个数的函数。
TableDI
2024-07-18 广告
VLOOKUP函数是Excel中用于数据匹配的重要工具。其使用方法是:在个参数中输入要查找的值,第二个参数是包含数据的范围或表格,第三个参数指定返回数据的列号,第四个参数(可选)决定查找方式(0为精确匹配,其他为近似匹配)。例如,假设我们想... 点击进入详情页
本回答由TableDI提供
百度网友1fc36d4
2011-12-29 · TA获得超过3128个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1812万
展开全部
以单链表而言:
1.每个节点需要使用指针来指向下一个节点,比如 struct node*next,若是没有后继节点了,记得设置当前节点的next为NULL。
链表需要记住头结点。
2.每个节点需要分配内存,使用malloc函数,注意判断内存是否分配成功,做好防错处理。
3.添加节点到链表的时候,需要找出插入点的前驱和后继。假设需要在p节点之前插入新节点t,q是p的前驱(即q->next=p),则q->next=s;s->next=p;可以画草图示意这个过程,加强理解。
4.删除节点的时候,需要把删除节点的前驱和后继连起来。假设需要删掉p节点,q是p的前驱(即q->next=p),则q->next=p->next;free(p);
先熟悉这些,多上机练习,然后再找些做做强化下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丝琪5U
2011-12-29 · TA获得超过478个赞
知道答主
回答量:128
采纳率:0%
帮助的人:66.6万
展开全部
typedef int datatype;
typedef struct{
datatype list[maxsize];
int size;
}seqlist;
void initiate(seqlist *&l) //初始化
{
l=(seqlist*)malloc(sizeof(seqlist));
l->size=0;
}
int insert (seqlist *l,int i,datatype x) //插入结点
{
int j;
if(l->size>=maxsize)
{
printf("表已满无法插入!\n");
return 0;
}
else if(i<0||i>l->size)
{
printf("参数i不合法!");
return 0;
}
else
{
for(j=l->size;j>i;j--) l->list[j]=l->list[j-1];
l->list[i]=x;
l->size++;
return 1;
}
}
int del(seqlist *&l,int i,datatype &x) //删除结点
{
int j;
if(l->size<=0)
{
printf("表已空无法删除!");
return 0;
}
else if(i<0||i>l->size)
{
printf("参数i不合法!");
return 0;
}
else
{
x=l->list[i];
for(j=i+1;j<=l->size-1;j++)
l->list[j-1]=l->list[j];
l->size--;
return 1;
}
}
int lfind(seqlist l,datatype x) //查找结点
{
int i=0;
while(i<=l.size&&l.list[i]!=x) i++;
if(i>l.size) return -1;
else return i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式