永发信息网

编程链表问题

答案:1  悬赏:0  手机版
解决时间 2021-04-16 12:26

#include <stdio.h>
#include <malloc.h>
typedef int DataType;
typedef struct node{
DataType data;
struct node *next;
}LinkList;

void *InitList(LinkList *head);
LinkList *AddHead(LinkList *head,DataType x);
int ListLen(LinkList *head);
LinkList *GetNode(LinkList *head,int i);
LinkList *LocateNode(LinkList *head,int x);
void DeleList(LinkList *head,int i);

void main(){

LinkList *l=NULL,*p=NULL;
int x=0;

l = (LinkList *)InitList(l);
x = ListLen(l);
printf("%d\n",x);
AddHead(l,4);
x = ListLen(l);
printf("%d\n",x);
AddHead(l,2);
x = ListLen(l);
printf("%d\n",x);
DeleList(l,1);
x = ListLen(l);
p = GetNode(l,1);
printf("%d\n",p->data);


}

void *InitList(LinkList *head)
{

head=(LinkList*)malloc(sizeof(LinkList));
head->next=NULL;

return head;
}

LinkList *AddHead(LinkList *head,DataType x){

LinkList *p;

p = (LinkList *)malloc(sizeof(LinkList));
p->data = x;
p->next = head->next; head->next = p;

return head;

}

int ListLen(LinkList *head){

int len = 0;
LinkList *p = head;

while(p->next!=NULL){
len++;
p=p->next;
}

return len;

}

LinkList *GetNode(LinkList *head,int i){

LinkList *p = head;
int j = 0;

while(p->next&&j<i){
j++;
p=p->next;
}

if(j==i) return p;
else return NULL;

}

LinkList *LocateNode(LinkList *head,int x){

LinkList *p=head->next;
while(p&&p->data!=x)
p=p->next;
return p;

}

void DeleList(LinkList *head,int i){

LinkList *p = head,*q = NULL;
int j = 0;

while(p->next&&j<i){
j++;
q=p;
p=p->next;
}

if(j==i){

q->next = p->next;
free(q);
printf("删除成功!");

}
else printf("超出链表范围!");
}

好像也是上次类似的错误但是我调试不好

第一次用VC编东西感觉还是很怪,

不好意思了,还得向你请教。

最佳答案

你好, 不好意思,晚上出去了.刚回来.


关于你提问. 是因为你释放的节点错误. 具体程序中有解释.


void DeleList(LinkList *head,int i){


LinkList *p = head,*q = NULL;
int j = 0;


while(p->next&&j<i){
j++;
q=p;
p=p->next;
}


if(j==i){
q->next = p->next;
free(p); //删除的应该是节点p.

printf("删除成功!");


}
else printf("超出链表范围!");
}


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
硬盘装不了系统怎么办,无法进入和重装系统怎
9份之7减45份之14等于多少?
一次性 交多长时间才算是男人 ??
凤岗镇是怀集县的吗?
办公室一族的妹妹们如何解决化妆到中午皮肤油
请问下从东莞总站到桂林市车站要多少钱?
双鑫蔬菜水果鲜肉店在哪里啊,我有事要去这个
如图,△ABC中,CE⊥AB,BF⊥AC。求证:△AEF
形容上课氛围好的句子,形容上课认真的句子
魔域里的战魂装备怎样来的????
飞车怎么才能跑得更快?本人技术一般
跪求 BAR 777 双星 西瓜 铃铛 木瓜 橘子 苹果
急需帮忙!(奇怪的皮肤)
一时的冲动把自己的感情给丢了,还能找回来吗
中沙金座地址有知道的么?有点事想过去
推荐资讯
系统驱动问题
现在三顾茅庐55JS书多少钱?
有没有便宜的笔记本电脑,除了二手货
西西网的挂有毒吗?
大便干燥怎么解决?
老公接朋友风波
广告传媒公司简介怎么写??
请问这是什么意思 ·谁能帮我翻译下
辽宁教育宣传中心在什么地方啊,我要过去处理
电影《就是这样》高清在哪能看? (急)
怎样面部减肥
东北二末日浩劫之镰多钱?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?