请大家帮我看看这个关于循环链表的程序为什么出现访问违例(段异常)
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
char data;
struct node *prior,*next;
}DLink;
void InitList(DLink *L)
{
L=(DLink *)malloc(sizeof(DLink));
L->prior=L->next=L;
}
int GetLength(DLink *L)
{
int i=0;
DLink *p=L->next;
while(p!=L)
{
i++;
p=p->next;
}
return i;
}
int InsElem(DLink *L,char x,int i)
{
int j=1;
DLink *p=L,*s;
s=(DLink *)malloc(sizeof(DLink));
s->data=x;s->prior=s->next=NULL;
if(i<1||i>GetLength(L)+1)
return 0;
while(j<i)
{
p=p->next;j++;
}
s->next=p->next;
s->next->prior=s;
p->next=s;
s->prior=p;
return 1;
}
main()
{
int i;
DLink *LL;
InitList(LL);
InsElem(LL,'a',1);
system("pause");
}
相关推荐
VC++中约瑟夫环的单向循环链表实现教程
约瑟夫环问题是计算机科学领域中一个经典的算法问题,它源于一个古老的传说:约瑟夫是犹太历史上的一个英雄人物,曾被围困于一个圈中,然后按照一定的规则报数,数到谁,谁就必须离开圈子,最后剩下的人将获得胜利。在现代的计算机编程中,这个问题经常被抽象为一个数学模型,即在一个环形链表中删除节点,直到只剩下最后一个节点。该问题在算法设计和数据结构中占有重要的地位,经常作为面试的热点问题来考察应聘者的逻辑思维和编程能力。其核心在于如何高效地遍历链表节点,并在特定的条件下进行节点的移除操作,同时保持链表结构的完整性。
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
车辆缺陷分割数据集4000张json格式.zip
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证


