標題: 單鏈表小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视频免费播放
|