| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 458 人关注过本帖
标题:求助:关于双向链表
只看楼主 加入收藏
thq_2004423
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-12-15
收藏
 问题点数:0 回复次数:2 
求助:关于双向链表
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define OK 1
#define ERROR 0
typedef struct DLNode{
int data;
struct DLNode *prior,*next;
}DLNode,*DLinkList;
int ListInsert(DLinkList,int,int);
int ListDelete(DLinkList,int,int*);
DLinkList GetElem(DLinkList,int);
main()
{
DLinkList head;
head->next=head->prior=head;
ListInsert(head,1,3);
getch ();
return 0;
}
int ListInsert(DLinkList l,int i,int e)
{
DLinkList p,s;
if(!(p=GetElem(l,i)))
return ERROR;
if(!(s=(DLinkList)malloc(sizeof(DLNode))))
return ERROR;
s->data=e;
s->prior=p->prior;
p->prior->next=s;
s->next=p;
p->prior=s;
return OK;
}
DLinkList GetElem(DLinkList l,int i)
{
DLinkList p;
int j=0;
p=l->next;
while(p&&j<i){
p=p->next;
++j;
}
if(!p || j>i)
return ERROR;
return p;
}
int ListDelete(DLinkList l,int i,int *e)
{
DLinkList p;
if(!(p=GetElem(l,i)))
return ERROR;
*e=p->data;
p->prior->next=p->next;
p->next->prior=p->prior;
free(p);
return OK;
}
这是一个双向链表的小程序;
为什么编译就出现"该内存不能为"written"";
搜索更多相关主题的帖子: 链表 
2005-12-16 16:53
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
指针没有指乱么?
DLinkList head;
head->next=head->prior=head;

[此贴子已经被作者于2005-12-16 17:28:21编辑过]


差点把你忘了...
2005-12-16 17:27
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
收藏
得分:0 
你这个双向链表的最后一个节点的next是指向那里的?
2005-12-16 21:44
快速回复:求助:关于双向链表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019690 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved