lgp142788 2016-10-11 04:51 采纳率: 50%
浏览 1846

单链表的创建与插入.删除

typedef struct node
{
int data;
struct node *next;
}NODE;
typedef NODE Head;
typedef NODE *Pointer;
void CreateList(Head *head,int n){
Pointer q;
int i;
head->data=0;
head->next=NULL;
head=(Pointer)malloc(sizeof(NODE));
q=head;
printf("输入%d个元素:\n",n);
for(i=n;i>0;n--){
q=(Pointer)malloc(sizeof(NODE));
scanf("%d",&q->data);
q->next=head->next;
head->next=q;
}
}
int InsertList(NODE*head,int idx,int e)
{
Pointer s,p;
int j=0;
p=head;
while(p&&j p=p->next;j++;
if(!p||j>idx-1)
return 0;
s=(Pointer)malloc(sizeof(NODE));
s->data=e;s->next=p->next;
p->next=s;
return 1;
}
int DeleteList(NODE *head,int idx,int *e){
NODE *p,*q;int j=0;q=head;
while(p->next&&j p=p->next;j++;
}
if(!(p->next)||j>idx-1) return 0;
q=p->next;p->next=q->next;
e=q->data;free(q);
return 1;
}
void DispList(Head*head){
Pointer p;
p=head->next;
while(p!=NULL){
printf("%d",p->data);
p=p->data;
}
printf("\n");
}
int main()
{
Head L,La;
int n,e,a,b;
printf("输入元素个数:\n");
scanf("%d",&n);
CreateList(&L,n);
printf("输入要插入的元素及位置:\n");
scanf("%d%d",&a,&b);
InsertList(&L,a,b);
DispList(&La)
printf("输入要删除的元素及位置:\n");
DeleteList(&L,1,&e);
return 0;
}

  • 写回答

1条回答

  • threenewbee 2016-10-11 05:15
    关注
     少头文件
    #include <stdio.h>
    #include <stdlib.h>
    
    DispList(&La)
    这里少分号
    
    for(i=n;i>0;n--){
    这里是i--
    
    e=q->data;
    ->
    *e=q->data;
    
    p=p->data;
    ->
    p=p->next;
    

    错误太多了,不一一看了,
    参考
    http://blog.csdn.net/xubin341719/article/details/7091979
    http://www.oschina.net/code/snippet_268712_9940

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现