Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <assert.h>
- #define NEWNODE (Node*)malloc(sizeof(Node))
- //宣告單向連結節點結構
- typedef struct SNode
- {
- int val;//存值
- struct SNode* next = NULL;//指向節點的下一個位址
- }Node;
- //全域變數
- Node* head = NULL;//指向第一個節點值
- int is_empty()//判斷節點是否為空
- {
- return head == NULL;//如果head指向NULL?回傳1:回傳0
- }
- Node* end()//回傳最後一節點位址
- {
- Node* iterator = head;//選代器指向head
- while(iterator->next)//下一節點未指向NULL
- iterator = iterator->next;
- return iterator;
- }
- void append(int _val)//加入節點至尾巴
- {
- if(is_empty())
- {
- head = NEWNODE;//配
- assert(head);//防止記憶體配置失敗
- head->val = _val;
- }else
- {
- Node* last = end();//last指向最後節點
- last->next = NEWNODE;//在最後節點的下一個位址配置節點
- assert(last->next);//防止記憶體配置失敗
- last->next->val = _val;
- }
- }
- void print()
- {
- if(is_empty())//如果資料為空
- {
- printf("list is empty\n");
- }else
- {
- Node* iterator = head;//選代器指向head
- while(iterator)
- {
- printf("%d,",iterator->val);//輸出值
- iterator = iterator->next;
- }
- printf("\n");
- }
- }
- int main()
- {
- print();
- append(10);
- print();
- append(4);
- print();
- append(8);
- print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement