注册 登录
编程论坛 数据结构与算法

程序结果有问题,麻烦哪位高手解决下!

优酷比 发布于 2010-07-14 12:01, 434 次点击
NSLinList.h
typedef struct node{
    DataType data;
    struct node *next;
}NSLNode;

void NSLLInitiate(NSLNode **head){
    *head=NULL;
}

int NSLLInsert(NSLNode **head,int i,DataType x){
    NSLNode *p,*q;
    int j;

    p=*head;j=1;
    while(p!=NULL&&j<i-1){
        p=p->next;j++;
    }

    if(j!=i-1&&i!=1){
        printf("插入位置参数错!");
        return 0;
    }

    if((q=(NSLNode *)malloc(sizeof(NSLNode)))==NULL)exit(1);
    q->data=x;

    if(i==1){
        q->next=*head;
        *head=q;
        //printf("%d\n",(*head)->data);
        
    }
    else{
        q->next=p->next;
        p->next=q;
        //printf("%d\n",p->next->data);
    }

    return 1;
}

int NSLLDelete(NSLNode **head,int i,DataType *x)
{
    NSLNode *p,*q;
    int j;

    p=*head;j=1;
    while(p!=NULL&&p->next!=NULL&&j<i-1){
        p=p->next;
        j++;
    }

    if(j!=i-1&&i!=1){
        printf("删除位置参数错!");
        return 0;
    }

    if(i==1){        
        q=p;
        *head=(*head)->next;

        
    }
    else
    {

        q=p->next;
   
        
        p->next=p->next->next;
        
    }
    *x=q->data;free(q);

   
   
    return 1;

}
     

main.cpp

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int DataType;
#include"NSLinList.h"
void main(){
    DataType test[6]={64,6,7,89,12,24};
    NSLNode *head,*p;
    int n=6,i;
    DataType *x;

    NSLLInitiate(&head);
    for(i=1;i<=n;i++){
        NSLLInsert(&head,i,test[i-1]);
    }

    for(i=n;i>=1;i--){
        NSLLDelete(&head,i,x);
        printf("%d\n",*x);
    }
    printf("\n");
}


0 回复
1