【数据结构】某些难理解点
生活随笔
收集整理的這篇文章主要介紹了
【数据结构】某些难理解点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 typedef char ListData; 2 //表示以后可以用ListData來代替char類型 3 4 typedef struct node{ //此處node,只在結(jié)構(gòu)體中出現(xiàn)和使用 5 ListData data; 6 struct node *link; 7 }ListNode; //表示將整個結(jié)構(gòu)體命名為ListNode,也就是說現(xiàn)在ListNode就是一種像int、char等的數(shù)據(jù)類型了,可以用它來定義別的節(jié)點 8 9 typedef ListNode *LinkList; //此處,表示以后可以用*LinkList來代替ListNode類型,其中LinkList表示的是指針,*LinkList表示的是指針所指的節(jié)點,即ListNode 10 11 LinkList first; //表示定義了一個指針,叫做first,但不能說此時它就是頭指針了,首先還要進行空間分配,其次只有在它的基礎(chǔ)上繼續(xù)插入別的指針并且始終保持它在最前面才行 12 13 14 ==================以下要好好理解===================== 15 16 ListNode *p; //定義了一個指針,指向*p節(jié)點 17 18 LinkList p; //和上式效果相同,直接定義了一個指針 19 20 所以說, 21 ListNode *p = first; 22 和 23 ListLink first; 24 中的first都是指針,p也是指針 25 26 更好的寫法是 27 ListNode* p = first; 28 29 類比: 30 typedef int* intPointer; 31 32 int* p, *q; 33 等價于 34 intPointer p, q; 35 36 注意: int* p 等價于 int *p 37 38 補充: 39 //指針可以理解為一段地址,指向著某個element 40 41 //定義一個指針 42 int* pCount; 43 char* pLetter; 44 45 //&表示取地址符號 46 pCount = &count; 47 48 //由指針得到所指內(nèi)容,用*符號 49 int a = *pCount;
?另外:
1.隊列中的頭節(jié)點是空的,詳見下面的刪除頭節(jié)點的函數(shù)
1 Status DeQueue_L(LinkQueue &Q, QElemType &e) { //如果想要真正的改變的話,就使用取地址符&,通過地址來對真正的進行操作,而非局部范圍內(nèi) 2 //若隊列不空,則刪除Q的隊頭元素結(jié)點,用e返回其值,并返回OK;否則返回ERROR 3 if (Q.front = =Q.rear) return ERROR; 4 //若隊列空,返回ERROR 5 p=Q.front->next; // p指向隊頭元素結(jié)點 6 e=p->data; 7 Q.front->next=p->next; // 修改鏈隊列頭結(jié)點指針 8 if(Q.rear= =p) Q.rear=Q.front; 9 // 對于鏈隊列只有一個元素結(jié)點的情況,要同時修改隊尾指針 10 free(p); 11 return OK; 12 }
?
轉(zhuǎn)載于:https://www.cnblogs.com/QingHuan/p/4948843.html
總結(jié)
以上是生活随笔為你收集整理的【数据结构】某些难理解点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学是谁唱的啊?
- 下一篇: crud springmvc