第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

您好,請教一下關(guān)于數(shù)據(jù)結(jié)構(gòu)問題,為什么我的怎么輸不出內(nèi)容?。?/h1>

您好,請教一下關(guān)于數(shù)據(jù)結(jié)構(gòu)問題,為什么我的怎么輸不出內(nèi)容???

慕斯709654 2021-11-20 15:11:35
#include<stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType;typedef struct{ElemType data[MaxSize];int length;}SqList;void InitList(SqList *&L) //初始化順序表L{L=(SqList *)malloc(sizeof(SqList));L->length;}void DestroyList(SqList *L)// 釋放順序表L{free(L);}int ListEmpty(SqList *L) // 判斷順序表L是否為空表{return(L->length==0);}int ListLength(SqList *L)//還回順序表L的元素個(gè)數(shù){return (L->length);}void DispList(SqList *L) //輸出順序表L{int i;if(ListEmpty(L)) return ;for(i=0;i<=L->length;i++){printf("%c",L->data[i]);}printf("\n");}int GetElem (SqList *L,int i, ElemType &e) // 獲取順序表L 中第i個(gè)元素{if(i<1||i>L->length)return 0;e=L->data[i-1];return 1;}int LocateElem(SqList *L,ElemType e) //在順序表L中查找元素e{int i=0;while(i<L->length&& L->data[i]!=e) i++;if(i>=L->length)return 0;elsereturn i+1;}int ListInsert(SqList * &L,int i,ElemType e)//在順序表L中第i個(gè)位置上插入元素e{int j;if(i<1||i>L->length+1)return 0;i--;for(j=L->length;j>i;j--)L->data[j]=L->data[j-1];L->data[i]=e;L ->length++;return 1;}int ListDelete(SqList * &L,int i, ElemType &e){int j;if(i<1||i>L->length)return 0;i--;e=L->data[i];for (j=i;j<L->length-1;j++){L->data[j]=L->data[j+1];}L->length--;return 1;}int main(){SqList *L;ElemType e;printf("(1)初始化順序表L\n");InitList(L);printf("(2)依次采用尾插法插入 a,b,c,d,e 元素\n");ListInsert(L,1,'a');ListInsert(L,2,'b');ListInsert(L,3,'c');ListInsert(L,4,'d');ListInsert(L,5,'e');printf("(3)輸出順序表L:");DispList(L);printf("(4) 順序表L長度=%d\n",ListLength(L));printf("(5) 順序表L 為%s\n",(ListEmpty(L) ? "空":"非空"));GetElem(L,3,e);printf("(6)順序表L的第3個(gè)元素=%c\n",e);printf("(7)元素a的位置=%d\n",LocateElem(L,'a'));printf("(8)在第4個(gè)元素位置上插入f元素\n");ListInsert(L,4,'f');printf("(9)輸出順序表L:");DispList(L);printf("(10)刪除L的第3個(gè)元素\n");ListDelete(L,3,e);printf("(11)輸出順序表L:");DispList(L);printf("(12)釋放順序表L\n");DestroyList(L);return 0;}
查看完整描述

1 回答

?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

void InitList(SqList *&L) //初始化順序表L
{
L=(SqList *)malloc(sizeof(SqList));
L->length;
}
我覺得應(yīng)該沒有SqList *&L這種寫法啊 親
而且你去掉這種寫法以后,主要原因在這里
你聲明了一個(gè)指針
SqlList* L;
然后將指針傳遞給init函數(shù)進(jìn)行賦值,要注意哦,指針是存放一塊空間的地址值啊,但是指針本身在函數(shù)調(diào)用的時(shí)候是按值傳遞的,也就是說你調(diào)用init函數(shù),只能在里面更改指針指向的內(nèi)存空間里的值,卻不能改變指針本身的值(即指針?biāo)牡刂分担詍alloc是無效的哦
這就好像
void add(int a)
{
a++;
}
int main()
{
int a = 2;
add(a); //由于a按值傳遞,是將a進(jìn)行了一次拷貝傳給add,所以對(duì)a本身的值不會(huì)有任何影響
}

你可以改啊
(1)要么在init外進(jìn)行malloc,然后在Init里進(jìn)行l(wèi)ength的賦值操作
(2)要么將指針的指針(即&L)傳給init(SqlList **) 這樣子傳遞的是指針的指針,就能更改指針中儲(chǔ)存的內(nèi)存對(duì)象的地址了



查看完整回答
反對(duì) 回復(fù) 2021-11-23
  • 1 回答
  • 0 關(guān)注
  • 316 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)