程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struct-@數據結構大神,單鏈表的插入,47行怎麼錯了?求解釋~

struct-@數據結構大神,單鏈表的插入,47行怎麼錯了?求解釋~

編輯:編程綜合問答
@數據結構大神,單鏈表的插入,47行怎麼錯了?求解釋~

include

include

typedef struct Node
{
char data;
struct Node *next;
}Node,*Linklist;//先定義、後使用

//定義數據L-分配頭節點-插入數據,連接-返回
Linklist Createfromhead()
{
Linklist L;Node*s;int flag=1;char c;
L=(Linklist)malloc(sizeof(Node));
L->next=NULL;

while(flag)
{
 c=getchar();
 if(c!='$')
 {
    s=(Node*)malloc(sizeof(Node));
    s->data=c;
    s->next=L->next;
    L->next=s;
 }
 else
 flag=0;
}


do{
    printf("%c ",L->data);
    L=L->next ;
}while(L!=NULL); //打印插入後的鏈表(反序打印) 


return L;

}

int insect(Linklist L,char e,int k)
{
Node *r;Linklist pre;int i=0;//輸入e插入的字母,k所在的位數,說明pre指向頭節點

pre=(Linklist)malloc(sizeof(Node));
pre->data=L->data;//pre的數據域就是L的數據域。怎麼錯了? 

while((pre->next!=NULL)&&(i<k-1))
 {pre=pre->next;k++;}//尋找插入的前驅結點pre 

if(k!=i-1)// 由於 pre->next!=NULL退出 (鏈表不夠長)
 return 0;

r=(Linklist)malloc(sizeof(Node));
r->data=e;
r->next=pre->next;pre->next=r;//插入新的節點 
return 1; 

}

int main()
{
char e;int k;Linklist L;

Createfromhead();

printf("\ninput k e\n");
scanf("%d %c",&k,&e);
printf("\n%d,%c\n",k,e);//對k,e輸入輸出

if(insect(L,e,k)==0) printf("wrong");
else
{do{
printf("%c ",L->data);
L=L->next ;
}while(L!=NULL);//打印插入後的鏈表(反序打印)
}

getch();
return 0;
}

圖片說明

最佳回答:


第一,插入是insert而不是insect;int insert(Linklist L,char e,int k)第二,程序內部有些小錯誤,你試試下面的代碼:int insect(Linklist L,char e,int k){Node *r;Linklist pre = L; //make pre and L the same int i=0; //輸入e插入的字母,k所在的位數,說明pre指向頭節點// pre=(Linklist)malloc(sizeof(Node));// pre->data=L->data;//pre的數據域就是L的數據域。怎麼錯了? while((pre != NULL) && (i < k - 1)) //Note that pre!=null is okay { pre=pre->next; i++; //change k to i } //尋找插入的前驅結點pre if(i != k-1)// 由於 pre->next!=NULL退出 (鏈表不夠長) return 0;r=(Linklist)malloc(sizeof(Node));r->data=e;r->next=pre->next;pre->next=r;//插入新的節點 return 1; }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved