動態連結串列的建立(程式碼)
/*** 動態連結串列的建立 ***/
#include<stdio.h>
#include<stdlib.h>
#define ID struct Student
#define LEN sizeof(ID) //該巨集定義為後續結構體的使用提供便捷
ID * creative( int ); //子函式申明
ID
{
int num;
int score;
ID * next;
}; //結構體申明
int main(void)
{
int n;
printf(" Enter the n "
", n = \n"); //printf() 的一種表示方法,C primer plus中介紹
scanf("%d",&n);
printf(" Piease waiting .....\n");
ID * p = creative(n); //p存放返回的首地址
printf(" 現在開始輸出成績 \n");
while( p->next != NULL )
{
printf("%d %d\n", p->num , p->score );
p = p->next;
}
printf("%d %d\n", p->num , p->score );
printf(" OK! \n");
ID * creative( int n )
{
ID * head ,* p; //結構體的指標定義
p = head = (ID *)malloc(LEN); / /申請動態記憶體空間,VC++6.0需要將(void *)強制轉化為(ID *)
scanf("%d,%d", &head->num , &head->score );
while(n-1) //n-1 的原因是因為前面已經有一個節點
{
p->next = (ID *)malloc(LEN);
--n;
scanf("%d,%d", &(p->next)->num , &p->next->score ); //注意兩者區別
p = p->next ;
}
p->next = NULL;
return head; //返回首地址
}
#include<stdio.h>
#include<stdlib.h>
#define ID struct Student
#define LEN sizeof(ID) //該巨集定義為後續結構體的使用提供便捷
ID * creative( int ); //子函式申明
ID
{
int num;
int score;
ID * next;
}; //結構體申明
int main(void)
{
int n;
printf(" Enter the n "
", n = \n"); //printf() 的一種表示方法,C primer plus中介紹
scanf("%d",&n);
printf(" Piease waiting .....\n");
ID * p = creative(n); //p存放返回的首地址
printf(" 現在開始輸出成績 \n");
while( p->next != NULL )
{
printf("%d %d\n", p->num , p->score );
p = p->next;
}
printf("%d %d\n", p->num , p->score );
printf(" OK! \n");
return 0;
}
ID * creative( int n )
{
ID * head ,* p; //結構體的指標定義
p = head = (ID *)malloc(LEN); / /申請動態記憶體空間,VC++6.0需要將(void *)強制轉化為(ID *)
scanf("%d,%d", &head->num , &head->score );
while(n-1) //n-1 的原因是因為前面已經有一個節點
{
p->next = (ID *)malloc(LEN);
--n;
scanf("%d,%d", &(p->next)->num , &p->next->score ); //注意兩者區別
p = p->next ;
}
p->next = NULL;
return head; //返回首地址
}
相關文章
- 資料結構-malloc申請動態空間-連結串列的建立資料結構
- 單連結串列的建立
- 關於動態連結串列的理解
- 單向連結串列的建立
- 資料結構--單連結串列的建立和遍歷(程式碼優化)資料結構優化
- 單連結串列建立連結串列出現問題
- 【程式碼隨想錄】二、連結串列:2、設計連結串列
- 【程式碼隨想錄】二、連結串列:1、移除連結串列元素
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構
- 動態連結庫(DLL)的建立和使用
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 程式碼隨想錄第3天 | 連結串列 203.移除連結串列元素,707.設計連結串列,206.反轉連結串列
- 建立單連結串列(尾插法)
- 建立連結串列兩種方法的區別
- 程式碼隨想錄:移除連結串列元素
- 程式碼隨想錄:設計連結串列
- 連結串列 - 單向連結串列
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構
- 連結串列4: 迴圈連結串列
- 連結串列-雙向通用連結串列
- 連結串列-單連結串列實現
- 資料結構之單連結串列的建立與刪除資料結構
- JavaScript 的資料結構和演算法 - 連結串列程式碼篇JavaScript資料結構演算法
- 小影片程式碼,反轉連結串列的實現思路分析
- C#資料結構-靜態連結串列C#資料結構
- 一文講透連結串列操作,看完你也能輕鬆寫出正確的連結串列程式碼
- cmake 連結動態連結庫
- JNI呼叫c動態連結庫函式程式碼實踐函式
- 動態連結庫與靜態連結庫
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 程式碼隨想錄演算法訓練營第三天|203(移除連結串列元素),707(設計連結串列),206(反轉連結串列)演算法
- 【LeetCode】【連結串列】劍指 Offer 52. 兩個連結串列的第一個公共節點 思路解析和程式碼LeetCode