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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)