1樓:匿名使用者
1、以下示例c語言呼叫函式建立和顯示連結串列:
#include
#define null 0
#define len sizeof(struct student)void print();
struct student *creat();
struct student
;int n;
int main()
struct student *creat()/*此函式帶回一個指向連結串列頭的指標*/
p2->next=null;
return(head);
}void print(head)/*顯示連結串列*/struct student *head;
while(p!=null);
}2、測試環境c-free5的標準c。
2樓:t君凡
#include
#include
#include
#include
#include
//定義資料型別名稱
typedef int datatype;
#define flag -1 //定義資料輸入結束的標誌資料
//單連結串列結點儲存結構定義
typedef struct node
lnode ,*linklist;
//建立單連結串列子函式
lnode *create_linklist()
s= (lnode *)malloc(sizeof(lnode)); //為當前插入元素的指標分配地址空間
s->data =x;
s->next =null;
i++;
if(i==1)
head=s;
else
l->next =s;
l=s;}}
//查詢子函式(按序號查詢)
lnode *get_linklist(linklist l,int i)
return p;
}//插入運運算元函式
void insert_linklist(linklist l,int i,datatype x) //在單連結串列l中第i個位置插入值為x的新結點
else
}//單連結串列的刪除運運算元函式
void delete_linklist(linklist l,int i) //刪除單連結串列上的第i個結點
else
else}}
//求表長運運算元函式
int length_linklist(linklist l)
return l;
}int main ()
break;
default :i=0;}}
}我把建立給改了一下
求寫c語言 建立連結串列例項子。要最基本的 包括註釋。
3樓:匿名使用者
#include
#include
typedef int datatype;
typedef struct node node;
void show(node *head)node *josefnode(int n)p->next = head; // 尾結點的next指向頭結點(head)
return head; // 返回頭結點地址}// 報名出列**,有些難度
void josef(int n)
else p = p->next; // 非3 的整數倍時,繼續}printf("\n");
free(h); // 釋放頭結點
h = null;
}void main()
4樓:田風子風
題目:建立固定長度的單向連結串列
程式分析:連結串列是動態分配儲存空間的鏈式儲存結構,
其包括一個「頭指標」變數,其中第0個結點稱為整個連結串列的頭結點,頭結點中存放一個地址,該地址指向一個元素,頭結點一般不存放具體資料,只是存放第一個結點的地址。
最後一個結點的指標域設定為空(null),作為連結串列的結束標誌,表示它沒有後繼結點。
在建立列表時要動態為連結串列分配空間,c語言的庫函式提供了幾種函式實現動態開闢儲存單元。
malloc()函式實現動態開闢儲存單元:
malloc函式原型為:void *malloc(unsigned int size);
其作用是在記憶體的動態儲存區中分配一個長度為size的連續空間,函式返回值是一個指向分配域起始地址的指標(型別為void)。如果分配空間失敗(如,記憶體空間不足),則返回空間指標(null)
#include
#include
struct lnode
;/*上面只是定義了一個結構體型別,並未實際分配記憶體空間
只有定義了變數才分配記憶體空間*/
struct lnode *creat(int n)
else
p2->next=null;/*尾結點的後繼指標為null(空)*/
}return head;/*返回連結串列的頭指標*/
}void main()}
c語言編寫一個建立學生連結串列的函式creat( )。
5樓:你老大我小弟
#include "stdlib.h"
#include "stdio.h"
struct stu
;struct stu *creat(int n)mylist->next=null;//現在的狀態為空連結串列cursor=mylist;
for(i=0;inext=null;//防止不定指標tempnode->num=10*i;
tempnode->score=20.5*i+10;
cursor->next=tempnode;//將結點連線到連結串列上cursor=cursor->next;//將連結串列的游標移動到下一個結點上
>num,tempnode->score);
}printf("\n");
return(mylist);}
6樓:
#include
#include
#include
#define n 5
typedef struct node
node;
node * create()
p->next=null;
return h;
} int main()
7樓:匿名使用者
#include"stdio.h"
#include"stdlib.h"
typedef struct studentstu;
stu* creat(int n)
return(stu);
}void main()
c語言空函式怎麼建立連結串列
8樓:匿名使用者
頭指標是必須傳遞的,無論是你子函式返回值也好,子函式的引數是頭指標也好
9樓:匿名使用者
#include
#include
struct stu ;
#define len sizeof(struct stu)void create(struct stu **head)p1->next = null;
return;
}void main(void)
c語言函式連結串列建立與輸出問題
10樓:
改為creat(print(head));試一下吧,多想想啊,想一下就知道答案的,不必要每一個問題都要上來問的,要多想想才能學會啊!!
用c語言,寫一個連結串列,主函式裡一般寫什麼?
11樓:
一般定義頭指標,尾指標,呼叫你寫的各種連結串列操作函式以及最後的結果輸出
C 在函式中建立連結串列,怎麼返回
但是,連結串列的復身體部分都是在函制數中創 建的,一旦函式執行完畢,這些身體不就被銷燬了嗎?每一個結點 都是動態new或malloc出來的,不會被銷燬如果用new在預設堆上建立,會被銷燬嗎?如果不會,那用標示符來指定delete呢?身體有關的標示符都是函式裡申請的區域性變數。結點的地址都被儲存在了連...
c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?
舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf n ...
關於C語言的函式呼叫(初級問題)
一個函式只能返回一個返回值,double d z 寫的不對。你可以把周長,面積,體積寫成三個函式,周長 double a double z 面積 double b doulbe z 體積 double c doulbe z 呼叫時寫為 y1 a x y2 b x y3 c x 可以返回陣列指標,這樣...