標題: 單鏈表小test遇到的問題 [打印本頁]
作者: liuyang 時間: 2012-1-14 03:46
標題: 單鏈表小test遇到的問題
看了數(shù)據(jù)結(jié)構(gòu)前幾篇按自己思路 寫了個單鏈表的test , 主要是創(chuàng)建和查找的測試。
#include<stdio.h>
#include<malloc.h>
struct list1{
int wdata;
struct list1 *node; //指向下一個連表
};
void create_l(struct list1 &LL,int n) //創(chuàng)建鏈表
{
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) //查找數(shù)據(jù)
{
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拋出了異常,于是我打斷點看了下發(fā)現(xiàn) fdata()中的b鏈表沒有得到想要的,于是查看create_l()創(chuàng)建鏈表的函數(shù),
我看了半天沒有發(fā)現(xiàn)邏輯上的問題,于是單步調(diào)試,發(fā)現(xiàn)LL的沒有指針域沒有賦值但是p明明賦了值,甚是奇怪,于是我查看了下 *p與LL看他們原始的內(nèi)容,發(fā)現(xiàn)一致。于是我感到很納悶,于是又想到看看他們p與&LL的指針的值,發(fā)現(xiàn)不一樣。突然才恍然大悟。
原來我 只是把p指向的stuct list1的內(nèi)存拷貝了賦給LL,在后面的操作都是在p指向的內(nèi)存中作操作,和LL的內(nèi)存沒有任何關系。 這個錯誤對于我新手來說,還真容易犯啊。
void create_l(struct list1 &LL,int n) //創(chuàng)建鏈表
{
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; //把鏈表頭地址的內(nèi)容拷貝賦給LL,這樣下個鏈表元素的指針也copy 過來了。
}
寫雙鏈表的時候才發(fā)現(xiàn)這個創(chuàng)建其實是有問題的,代碼寫多了。改為
void create_l(struct list1 &LL) //創(chuàng)建鏈表
{
struct list1 *p,*q;
int a;
p=&LL;
scanf("%d",&a);
while(a!=-1) //輸入-1為結(jié)束
{
q=(struct list1 *)malloc(sizeof(struct list1));
scanf("%d",&q->wdata);
p->node=q; 前個鏈表元素的指針域為這個鏈表元素
p=q; //這個鏈表元素作為下個鏈表元素的前一個鏈表
}
p->node=NULL;
}
這樣才是正確的,呵呵,果然新手一開始什么問題都怪怪的。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
91白浆|
亚洲一级黄色片
|
色婷婷综合在线
|
亚洲成人免费网站
|
亚洲精品1区2区
|
天天躁日日躁狠狠躁
|
日韩免费一区
|
亚洲精品欧美
|
久久精品一
|
成年人观看视频
|
一级片国产
|
天天爽夜夜爽夜夜爽精品视频
|
国产福利视频在线观看
|
一级黄色在线观看
|
岛国免费av|
国产精品人人做人人爽人人添
|
国产黄网
|
成人观看视频
|
国产在线中文字幕
|
精品国产一区二区三区久久久蜜月
|
懂色av蜜臀av粉嫩av分享
|
欧美日视频
|
亚洲激情网
|
老司机午夜免费精品视频
|
欧美日韩在线一区二区三区
|
国产视频99
|
黄色一级在线观看
|
国产精品综合网
|
欧美一级网站
|
亚洲激情五月
|
夜夜欢天天干
|
在线观看av的网站
|
伊人久久艹
|
日韩在线精品视频
|
国产精品久久久久久久
|
成人免费网站在线观看
|
九九在线精品
|
欧美一区二区精品
|
欧美日韩国产在线播放
|
日韩国产在线
|
欧洲av网站|