小编use*_*927的帖子

使用c中的链表代码进行此插入排序有什么问题?

执行此操作时出错.编译器不会给出任何错误,但在执行时会给出随机输出.

我在做什么是从用户那里获取输入并将它们存储到链表然后实现插入排序.(我能够调用子程序插入排序,所以我猜问题只在于子程序中)

#include<stdio.h>
#include<stdlib.h>

struct node
{
    int info;
    struct node *next;
};
typedef struct node *NODEPTR;

NODEPTR getnode();
NODEPTR insertionSortLinkedList(NODEPTR head);

int main()
{
    int i,n,temp;
    NODEPTR head,lptr,prevlptr;
    printf("No of input integers to be sorted\n");
    scanf("%d",&n);
    if (n<2){printf("n should be atleast 2 \n");return 0;}
    printf("\nType space-separated array of %d integers\n",n);
    scanf("%d",&temp);

    head=getnode();
    head->info=temp;
    head->next=NULL;
    prevlptr=head;
    for (i=0;i<n-1;i++)
    {
        scanf("%d",&temp);
        lptr=getnode();
        lptr->info=temp;
        prevlptr->next=lptr;
        lptr->next=NULL;
        prevlptr=lptr;  
    }

    head=insertionSortLinkedList(head);

    lptr=head;
    while(lptr!=NULL)
    {
        printf("%d ",lptr->info);
        prevlptr=lptr;
        lptr=lptr->next;
        free(prevlptr);
    }

    return 0;
}


NODEPTR …
Run Code Online (Sandbox Code Playgroud)

c linked-list

1
推荐指数
1
解决办法
419
查看次数

标签 统计

c ×1

linked-list ×1