我寫了乙個簡單的連結串列執行時出現異常訪問請高人指點

2025-02-02 03:25:20 字數 4502 閱讀 2138

1樓:網友

你只有3個piont變數無法構造連結串列!!

#include

using namespace std;

struct piont

int data;

piont *next;

int main()

int n;

cin>>n;

int i;

piont *h,*p,*q;

h=(piont *)malloc(sizeof(piont));

h->data=1;

h->next=0;

p=h;for(i=2;i<=n;i++)q=(piont *)malloc(sizeof(piont));應該用指標,並且應該malloc分配空間。注意後面要free

q->data=i;

q->next=0;

p->next=q;

p=q;p=h;

for(i=1;i<=n;i++)

coutfree(q);

return 0;

2樓:二五零二五零

#include

using namespace std;

struct piont

int data;

piont *next;

int main()

int n;

cin>>n;

int i;

piont *h,*p,*q;

h=(piont *)malloc(sizeof(piont));

h->data=1;

h->next=0;

p=h;for(i=2;i<=n;i++)q=(piont *)malloc(sizeof(piont));應該用指標,並且應該malloc分配空間。注意後面要free

q->data=i;

q->next=0;

p->next=q;

p=q;p=h;

for(i=1;i<=n;i++)

coutfree(q);

return 0;

乙個簡單的連結串列

3樓:網友

struct node

結構的罩舉困節點 定義節點有兩個成員。

main()

struct node a,b,c,*h,*p;//建立了三個節點 指向結構、物念節點的2個答滑指標。

;p=h;while(p)

printf("%d-->p->data);

p=p->next;//指向下乙個節點。

printf("");執行結果:

寫乙個簡單的連結串列

4樓:網友

懂類和模板麼?懂的話可以給你提供乙個參考。如果單純寫作業題就算了……

5樓:網友

聽說c++在n年前就做了乙個偉大的東西,他的名字叫stl,裡面有個東西叫list。。。

剛學連結串列,寫了乙個簡單的連結串列,通過編譯了,但執行時出錯不知道原因?

6樓:

printf("%d",h->a1); 這句,對空指標操作,造成記憶體錯誤、加個判斷就好了。

if (h !=null)

printf("%d",h->a1)

c,c++連結串列(求高人指點!)

7樓:網友

語言是不會一下子學完的。

資料結構上最重要的 也不是一天兩天能掌握的。

不要浮躁~一起努力 呵呵。

8樓:網友

連結串列這東西教永遠都教不會的,還是要自己多理解。只要注意結點與結點的指向就ok了。

9樓:網友

那c++是怎麼學完的啊?資料結構中最最基本的部分啦。

建立乙個簡單的連結串列

10樓:網友

struct list * make(int n)struct list *p,*head,*tail;

int i;

int size=sizeof(struct list);

head=( struct list *)malloc(size);

head->num=1;

p=head;

for(i=2;i<=n;i++)

p=(struct list *)malloc(size);/這裡改成tail來申請,第一次迴圈的時候p指向的是head如果用p來申請的話,那head的指標就丟失了,而tail指標是null,tail->num賦值也是不可以的。

tail->num=i;//接下來的**都可以,將next指向新申請的tail,再將p指向型櫻氏隊尾。

p->next=tail;

p=p->next;

return head;

流程如下:申請記憶體頌慎,並將p指向head記憶體塊。

迴圈。申請記憶體並賦值,將p的next指向tail,這樣就將head鏈結上tail了,以後的迴圈就將前面一項鍊接上tail

將p指標指向卜散tail,在下一次迴圈當中可以鏈結下乙個單元。

3.返回head指標。

11樓:網友

/改了衡緩 不負責解釋了 像下行銷面 仔檔攔遊細看吧!!!

struct list * make(int n)struct list *head,*tail;

int i;

int size=sizeof(struct list);

head=( struct list *)malloc(size);

head->num=1;

tail=head;

for(i=2;i<=n;i++)

tail->next = struct list *)malloc(size);

tail = tail->next;

tail->num=i;

tail->next=null;

return head;

乙個簡單的連結串列輸出

12樓:網友

怎麼會沒有輸出呢?因為你並沒有結束程式。

while(p1->data!=0)

n++;if(n==1) head=p1;

else p2->next=p1;

p2=p1;

p1=(struct node *)malloc(len);

scanf("%d",&p1->data);

注意這個while迴圈,是當p1->data=0時退出,因此你必須輸入0結束輸入才會有輸出我改了一下程式這樣更直觀些。

#include ""

#include ""

#define len sizeof(struct node)struct node{

int data;

struct node *next;

struct node *scanff()struct node *p1;

struct node *head;

int n=0;

struct node *p2;

p1=p2=(struct node *)malloc(len);

printf("請連續輸入整數 輸入0停止");

scanf("%d",&p1->data);

head=0;

while(p1->data!=0)

n++;if(n==1) head=p1;

else p2->next=p1;

p2=p1;

p1=(struct node *)malloc(len);

scanf("%d",&p1->data);

p2->next=0;

return (head);

void print(struct node *head)struct node *p;

p=head;

if(head!=0)

do{printf("%d ",p->data);

p=p->next;

while(p!=0);

void main()

struct node *head;

head=scanff();

printf("你所輸入的整數如下:");

print(head);

13樓:網友

除程式結束後,沒有釋放記憶體之外! 沒有問題。

至於連結串列輸出的問題,我想應該是你用標準的輸入函式scanf,只要你輸入的格式有誤就會不列印, 能不能給定些輸入的特例。

編了乙個連結串列程式,在c++6.0環境下執行出錯,急求高人指點。。拜託了

14樓:匿名使用者

如果你會寫「hello world」的經典入門程式,你就不會出這樣的錯。

可加q群:186394662

單連結串列的建立,插入,建立一個單連結串列,並實現插入,刪除操作

include include struct node 建立單連結串列的函式,返回的是頭結點 struct node create slist r next 0 return h 輸出連結串列的函式,形參為頭結點 void print slist struct node h printf end n...

shell程式設計case,我寫了一個shell指令碼去呼叫執行一個testcase。請問,如何儲存執行case的所有中間過程。謝謝!

a z 和 a z 這種用法在某些特定的場合或某些linux發行版中不能夠正常工作,建議使用posix 風格的寫法,lower 和 upper 這樣更具可移植性。測試了一下,我這裡用 a z 和 a z 也不行,也必須使用 lower 和 upper 才可以工作。此外,要用c locale 即eng...

簡單的問題,一個簡單的問題 !!!

可以肯定的告訴你,你比漂亮女生更有優勢,喜歡你的肯定是真愛 真正的喜歡,是會包容對方的一切一切 當然會啦,豆豆最終會消失的 再說長豆豆是青春的標誌啊 若是我,我是不會太在意外表的,那些東西通常不真實,我更在乎她的內在修養 和跟她在一起時的感覺 那要看那個男生是不是在乎她的長相啊 只要善良 溫柔 大方...