請問大佬們,這個不用la->data或者la->next之類的怎么寫呀?
uj5u.com熱心網友回復:
為La申請作業指標p、q,為Lb申請作業指標t,用p、q遍歷La時鏈到Lb上uj5u.com熱心網友回復:
求大佬寫一下下代碼

uj5u.com熱心網友回復:
#include<iostream>using namespace std;
#define N 5
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*Linklist;
//構造單鏈表La
Linklist Createndlist1(int a[N])
{
Linklist L;
L = (Lnode*)malloc(sizeof(Lnode));
if (L == NULL)
{
cout << "error";
exit(0);
}
else L->next = NULL;
Linklist tail, p;
tail = L;
int j;
for (j = 0; j < N; j++)
{
p = (Lnode*)malloc(sizeof(Lnode));
if (p == NULL)
{
cout << "error";
exit(0);
}
else p->next = NULL;
p->data = a[j];
tail->next = p;
tail = p;
}
tail->next = NULL;
return L;
}
//構造單鏈表Lb
Linklist CreatLinklist2(Linklist La)
{
Linklist Lb;
Lb = (Lnode*)malloc(sizeof(Lnode));
if (Lb == NULL)
{
cout << "error";
exit(0);
}
else Lb->next = NULL;
Linklist p, q, t;
p = La;
q = p->next;
t = Lb;
while (q)
{
p->next = q->next;
q->next = NULL;
t->next = q;
t = q;
q = p->next;
}
return Lb;
}
//輸出鏈表
void putlist(Linklist L)
{
int i;
Linklist p;
p = L->next;
while (p != NULL)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
int main()
{
int i ,a[N];
printf("請輸入%d個鏈表元素的值:", N);
for (i = 0; i < N; i++)
{
cin >> a[i];
}
Linklist La,Lb;
La = Createndlist1(a);
cout << "鏈表La為:";
putlist(La);
Lb = CreatLinklist2(La);
cout << "鏈表Lb為:";
putlist(Lb);
return 0;
}
uj5u.com熱心網友回復:
匆忙寫出的代碼,可能有bug????uj5u.com熱心網友回復:
enn……題目中“不要訪問鏈表的任何細節”與“順序讀取la”好像矛盾吧uj5u.com熱心網友回復:
創建鏈表la,然后申請一個Lb鏈表頭,讓鏈表Lb也指向la->next;這樣lb也可以訪問鏈表a中的資料了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/103077.html
標籤:C語言
