代碼如下,我在重要部分做了注解:#include <iostream> using namespace std;
struct test { char name[10]; float socre; test *next; };
test *head;//創建一個全局的引導進入鏈表的指針
test *create() { test *ls;//節點指針 test *le;//鏈尾指針 ls = new test;//把ls指向動態開辟的堆內存地址 cin>>ls->name>>ls->socre; head=NULL;//進入的時候先不設置head指針指向任何地址,因為不知道是否一上來就輸入null跳出程序 le=ls;//把鏈尾指針設置成剛剛動態開辟的堆內存地址,用于等下設置le->next,也就是下一個節點的位置
在create()函數內部我們先寫成這樣: test *create() { test *ls;//節點指針 test *le;//鏈尾指針 ls = new test;//把ls指向動態開辟的堆內存地址 cin>>ls->name>>ls->socre; head=NULL;//進入的時候先不設置head指針指向任何地址,因為不知道是否一上來就輸入null跳出程序 le=ls;//把鏈尾指針設置成剛剛動態開辟的堆內存地址,用于等下設置le->next,也就是下一個節點的位置
更多內容請看C/C++技術專題 電腦知識專題,或 完整代碼如下:#include <iostream> using namespace std; struct test { int number; float socre; test *next; }; test *head;//創建一個全局的引導進入鏈表的指針
test *create() { test *ls;//節點指針 test *le;//鏈尾指針 ls = new test;//把ls指向動態開辟的堆內存地址 cin>>ls->number>>ls->socre; head=NULL;//進入的時候先不設置head指針指向任何地址,因為不知道是否一上來就輸入null跳出程序 le=ls;//把鏈尾指針設置成剛剛動態開辟的堆內存地址,用于等下設置le->next,也就是下一個節點的位置
今天的程序在昨天的基礎上做了進一步的修改,可以避免刪除點找不到的情況,假如找不到刪除點就退出函數! #include <iostream> using namespace std; struct test { int number; float socre; test *next; }; test *head;//創建一個全局的引導進入鏈表的指針
test *create() { test *ls;//節點指針 test *le;//鏈尾指針 ls = new test;//把ls指向動態開辟的堆內存地址 cout<<"請輸入第一個節點number和節點score,輸入0.0跳出函數"<<endl; cin>>ls->number>>ls->socre; head=NULL;//進入的時候先不設置head指針指向任何地址,因為不知道是否一上來就輸入null跳出程序 le=ls;//把鏈尾指針設置成剛剛動態開辟的堆內存地址,用于等下設置le->next,也就是下一個節點的位置 while(ls->number!=0)//創建循環條件為ls->number的值不是null,用于循環添加節點 {