久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單鏈表小test遇到的問題 [打印本頁]

作者: liuyang    時間: 2012-1-14 03:46
標題: 單鏈表小test遇到的問題
   看了數據結構前幾篇按自己思路 寫了個單鏈表的test ,   主要是創建和查找的測試。

#include<stdio.h>
#include<malloc.h>

struct list1{
 int wdata;
 struct list1 *node;   //指向下一個連表
};

void create_l(struct list1 &LL,int n)   //創建鏈表
{
    struct list1 *p,*q;
    int i;
 p=(struct list1 *)malloc(sizeof(struct list1));
 LL=*p;
 for(i=0;i<n;++i)
 {
      q=(struct list1 *)malloc(sizeof(struct list1));
   scanf("%d",&q->wdata);
   p->node=q;  前個鏈表元素的指針域為這個鏈表元素
   p=q;     //這個鏈表元素作為下個鏈表元素的前一個鏈表
 }
 p->node=NULL;
}

struct list1* fdata(struct list1 *b,int aa)   //查找數據
{
   while((b!=NULL)&&(b->wdata!=aa))
     b=b->node;
   return b;
}
int main()
{
 struct list1 cl;
 struct list1* cll;
  create_l(cl,5);
  cll=fdata(&cl,3);
  if (cll==NULL)
  {
   printf("NO");
  }else{
   printf("find");
  }
 return 0;
}

 

   我跑了下VC拋出了異常,于是我打斷點看了下發現  fdata()中的b鏈表沒有得到想要的,于是查看create_l()創建鏈表的函數,

我看了半天沒有發現邏輯上的問題,于是單步調試,發現LL的沒有指針域沒有賦值但是p明明賦了值,甚是奇怪,于是我查看了下 *p與LL看他們原始的內容,發現一致。于是我感到很納悶,于是又想到看看他們p與&LL的指針的值,發現不一樣。突然才恍然大悟。

 原來我 只是把p指向的stuct list1的內存拷貝了賦給LL,在后面的操作都是在p指向的內存中作操作,和LL的內存沒有任何關系。 這個錯誤對于我新手來說,還真容易犯啊。

 

void create_l(struct list1 &LL,int n)   //創建鏈表
{
    struct list1 *p,*q,*cl;
    int i;
 p=(struct list1 *)malloc(sizeof(struct list1));
 cl=p;     //把鏈表頭地址指針存放起來
 for(i=0;i<n;++i)
 {
      q=(struct list1 *)malloc(sizeof(struct list1));
   scanf("%d",&q->wdata);
   p->node=q;
   p=q;
 }
 p->node=NULL;
 LL=*cl;    //把鏈表頭地址的內容拷貝賦給LL,這樣下個鏈表元素的指針也copy 過來了。 
}

 

 寫雙鏈表的時候才發現這個創建其實是有問題的,代碼寫多了。改為

 

void create_l(struct list1 &LL)   //創建鏈表
{
    struct list1 *p,*q;
    int a;

    p=&LL;

  scanf("%d",&a);

while(a!=-1)      //輸入-1為結束

{
      q=(struct list1 *)malloc(sizeof(struct list1));
   scanf("%d",&q->wdata);
   p->node=q;  前個鏈表元素的指針域為這個鏈表元素
   p=q;     //這個鏈表元素作為下個鏈表元素的前一個鏈表

}
 p->node=NULL;
}

 

這樣才是正確的,呵呵,果然新手一開始什么問題都怪怪的。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品视频在线观看视频 | 国产日韩欧美电影 | 激情综合五月天 | 欧美高清成人 | 99热播放 | 日韩在线综合 | 亚洲视频免费观看 | 亚洲男女视频在线观看 | 成人午夜影院 | 久久久亚洲 | 99这里只有精品视频 | 久久久久亚洲精品 | 麻豆91精品91久久久 | 国产农村妇女精品一二区 | 国产一区二区影院 | 精品欧美一区二区在线观看 | 日韩欧美在线视频一区 | 成人国产一区二区三区精品麻豆 | 我爱操 | 精品三区 | 欧洲国产精品视频 | 一区二区三区免费 | 午夜精品一区二区三区在线观看 | 成人影院网站ww555久久精品 | 国产精品日韩在线 | 在线高清免费观看视频 | www.色五月.com | 蜜桃视频成人 | 亚洲一区二区三区在线视频 | 国产精品久久久久久久久久久久 | 国产玖玖 | 欧美视频免费在线 | 天天操夜夜操免费视频 | 国产精品美女久久久久久久久久久 | 91精品久久久久久久久 | 欧美精品91爱爱 | 免费视频一区二区 | 国产yw851.c免费观看网站 | 欧美一区二区视频 | 99视频免费在线 | 99视频免费播放 |