當前位置:首頁 » 編程語言 » c語言鏈表輸出

c語言鏈表輸出

發布時間: 2022-09-23 10:35:50

c語言鏈表輸出亂碼

q=(struct
student*)malloc(sizeof(struct
student));
malloc並不會給內存賦初值,用memset(q,0,sizeof(struct
student));將初值賦為0;
如下,在q=(struct
student*)malloc(sizeof(struct
student));後面加上memset(q,0,sizeof(struct
student));這一句.

⑵ 如何用c語言輸出整個單鏈表中的數據

單鏈表中頭結點有兩個作用:一是標識該鏈表的存在,而是可以通過頭結點遍歷整個鏈表。所以不能通過移動頭結點指針遍歷鏈表,因為一旦移動了,下次就無法定位該鏈表了!
void dispList(LinkList *L)
{
LinkList *p=L->next;//定義一個結點指針p指向頭結點的下一個結點
while(p){ //如果p不為空則循環
printf("%d",p->data);
p=p->next;//移動指針p遍歷鏈表
}
}

⑶ C語言鏈表輸出,while(p)是什麼意思怎麼判斷完成輸入了

while(p)

等價於

while(p!=NULL)

如果p不指向NULL,那麼就是沒有到達結尾,那麼就執行循環體中的printf()

⑷ C語言鏈表的輸入輸出

# include <stdio.h>
# include <malloc.h>
# define NULL 0
# define LEN sizeof(struct student)
struct student
{int num;
int score;
struct student *next;
};
int n;
struct student *creat(void)
{struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student*)malloc(LEN);
scanf("%d,%d",&p1->num,&p1->score);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if (n==1)head=p1;
else {
p1=(struct student *)malloc(LEN);
p1->next=NULL;
p2->next=p1;
p2=p1;
scanf("%d,%d",&p1->num,&p1->score);
}
}
return(head);
}
void print (struct student *head)
{ struct student *p;
p=head;
do
{printf ("%d %d\n",p->num,p->score);
p=p->next;
}while (p!=NULL);
}
void main ()
{
print (creat());
}

代碼修改好,主要注意在你沒malloc空間就給結構體傳值了,所以會出錯
scanf("%d,%d",&p1->num,&p1->score);

⑸ c語言 插入鏈表節點 怎麼讓輸出的時候和輸入一樣每個數字間隔空格呢現在輸出的鏈表直接是連在一起的。

只需要將
void list(LinkList l)
{
LinkList p=l->next;
while(p!=NULL){
printf("%d",p->data);
p=p->next;
}
這部分中的 printf("%d",p->data); 改為 printf("%d ",p->data); 即可

⑹ 如何用c語言輸出整個單鏈表中的數據

單鏈表中頭結點有兩個作用:一是標識該鏈表的存在,而是可以通過頭結點遍歷整個鏈表。所以不能通過移動頭結點指針遍歷鏈表,因為一旦移動了,下次就無法定位該鏈表了!
void
dispList(LinkList
*L)
{
LinkList
*p=L->next;//定義一個結點指針p指向頭結點的下一個結點
while(p){
//如果p不為空則循環
printf("%d",p->data);
p=p->next;//移動指針p遍歷鏈表
}
}

⑺ C語言用鏈表實現逆序輸出

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

//定義鏈表節點
typedefstructLNode
{intdata;
structLNode*next;
}LNode,*Linklist;

//創建鏈表
Linklistcreate()
{inti,n;//i用於下面循環,n用來存放有效節點的字數
Linklistp,L;
printf("PleaseinputN=");
scanf("%d",&n);
L=(Linklist)malloc(sizeof(LNode));//分配一個不存放有效數據的頭結點
L->next=NULL;
for(i=0;i<n;i++)
{p=(Linklist)malloc(sizeof(LNode));//生成新節點
scanf("%d",&p->data);//輸入元素值
p->next=L->next;
L->next=p;
}
returnL;//返回頭節點;
}
//鏈表反轉輸出
LinklistReverseList(LinklistL,intst)//st為1時輸出結點數據
{if(L->next!=NULL)
ReverseList(L->next,1);
if(st)printf("%d",L->data);
returnL;
}

voidput(LinklistL)
{Linklistp;
p=L->next;
while(p!=NULL)
{printf("%d",p->data);
p=p->next;
}
printf(" ");
}

intmain()
{LinklistL;
L=create();
printf("A:");put(L);
printf("B:");
ReverseList(L,0);//附加結點未保存數據,故第二參數為0
return0;
}

⑻ C語言:關於鏈表的輸出問題,為什麼需要兩個重復的定義

這個不叫重復定義,這是為p1動態分配內存空間,這樣把不連續的內存空間連接起來構成鏈表

⑼ 關於C語言,結構體鏈表數據輸出的問題

很簡單,你開始寫的程序里,fread調用三次之後,feof判斷文件是否結尾,結果是否,所以會第四次循環又從文件中讀了一次,但這次調用fread是讀不出來內容的,而文件指針指向了文件結尾。所以data中的內容是隨機的(malloc分配的內存內容不進行清零的處理)。
所以好的編程習慣是讀的時候也做一下判斷:
if(fread(fread(p,sizeof(data),1,fp) == sizeof(data))
相等說明讀文件成功,否則的話說明到了文件結尾或是文件有錯誤。
另外你的程序中還隱藏著一個問題,用malloc分配的內存沒有釋放,當然你做個程序例子是可以,但真正編程序時這會造成內存泄漏。

⑽ c語言,從文件中讀取單鏈表並輸出。

需求有點不清晰,你要從文件里取什麼東西出來?
我改了從txt取每一行的字元串出來,記錄在你的鏈表,你參考一下
#include
"stdafx.h"
#include
"stdlib.h"
int
main()
{
struct
fac
{
//int
data;
char
data[256];
//不知道你要取什麼數據,這里用個字元串數組代替
struct
fac
*next;
}*phead;
int
i;
FILE
*fp=fopen("d:\\text.txt","rb");
//一個有內容的txt文本,自己替換
struct
fac
*p;
struct
fac
*ptemp;
phead=(struct
fac*)malloc(sizeof(struct
fac));
phead->next=NULL;
ptemp=phead;
//fread(p,sizeof(struct
fac),1,fp);
while(fgets(
ptemp->data,256,fp
)!=NULL)//改用fgets取一行的數據
{
printf("%s\n",ptemp->data);
p=(struct
fac*)malloc(sizeof(struct
fac));
ptemp->next=p;
ptemp
=
ptemp->next;
}
//後面還應該有個釋放鏈表的操作,這里程序結束會回收,就不寫了。
}

熱點內容
長安unit卓越版有哪些配置 發布:2025-01-10 11:25:25 瀏覽:99
python安裝後怎麼打開 發布:2025-01-10 11:08:35 瀏覽:871
phpjava架構 發布:2025-01-10 10:56:06 瀏覽:383
python二維排序 發布:2025-01-10 10:56:00 瀏覽:607
南水北調怎麼配置 發布:2025-01-10 10:55:27 瀏覽:121
廣數980系統參數密碼是多少 發布:2025-01-10 10:55:25 瀏覽:577
androidhtml字體 發布:2025-01-10 10:55:01 瀏覽:787
資料庫連接工廠模式 發布:2025-01-10 10:51:00 瀏覽:488
mac文件夾路徑設置 發布:2025-01-10 10:48:12 瀏覽:803
shell腳本自動密碼 發布:2025-01-10 10:46:29 瀏覽:766