求助,求找错。
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
typedef struct Node{
int data;
struct Node * pnext;
}NODE,*PNODE;
PNODE create_list(void);
void traver_list( PNODE phead );
PNODE dlele_list(PNODE phead);
PNODE insert_list(PNODE phead);//函数声明
int main(void)
{
PNODE phead =NULL;
phead=create_list();
traver_list(phead);
insert_list( phead);
traver_list(phead);
dlele_list(phead);
traver_list(phead);
return 0;
}//主函数
PNODE create_list(void)
{
int lon;
int tem;
int i;
PNODE phead=(PNODE)malloc(sizeof(NODE));
if(NULL==phead)
{
printf("分配失败");
exit( -1 );
}
PNODE ptail=phead;
ptail->pnext=NULL;
printf("输入创建链表个数\n");
scanf("%d",&lon );
for(i=0;i<lon;i++)
{
printf("输入第%d个节点数据",i+1);
scanf("%d",&tem);
PNODE pnew=(PNODE)malloc(sizeof(NODE));
pnew->data=tem;
ptail->pnext=pnew;
pnew->pnext=NULL;
ptail=pnew;
}
return phead;
}//创建链表
void traver_list( PNODE phead )
{
PNODE p = phead->pnext;
printf("链表为:\n");
while(p!=NULL)
{
printf("%d",p->data);
p=p->pnext;
printf( "\n" );
}
}//链表遍历
PNODE insert_list(PNODE phead)
{
int data1;
int loc;
printf("输入要插入的位置");
scanf("%d",&loc);
printf("输入要插入的数据");
scanf("%d",&data1);
PNODE t=phead->pnext;
for(int i=0;i<loc;i++)
{
t=t->pnext;
}
PNODE pnew=(PNODE)malloc(sizeof(NODE));
if(NULL==pnew)
{
printf("分配失败");
exit( -1 );
}
pnew->data=data1;
pnew->pnext=t->pnext;
pnew=t;
free(t);
return phead;
}//链表插入
PNODE dlele_list(PNODE phead)
{
int del;
int i;
printf("输入要删除第几个节点");
scanf("%d",&del);
PNODE q=phead->pnext;
for(i=0;i<del;i++)
{ q=q->pnext;
}
PNODE t;
t=q;
q=q->pnext;
free(t);
return phead;
}//链表删除
赫斌数据结构,呵呵
楼主是否没有使用控制台,新建工程时选那个win32 console application 看着头有点晕,路过。。。。 编译运行是没问题,插入数据的时候会出错。 没仔细看,先把#include <malloc.h>去掉 新人帮顶,楼主加油 这是什么程序啊?看不懂:sweat:
页:
[1]