當前位置:
首頁 >
结构体里有指针 scanf赋值_C++|链表中常见的链表节点指针操作
發布時間:2024/10/12
61
豆豆
生活随笔
收集整理的這篇文章主要介紹了
结构体里有指针 scanf赋值_C++|链表中常见的链表节点指针操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈表節點指針做左值時的賦值可以理解為左值指向或鏈接。
1 用帶指針的結構體類型來描述鏈接結點
typedef struct Lnode{ ElemType data; /*數據域,保存結點的值 */struct Lnode *next; /*指針域*/}LNode; /*結點的類型 */2 結點的賦值(在堆上創建節點)
LNode *p, *q;p=(LNode*)malloc(sizeof(LNode)); p->data=20; p->next=NULL ;3 指針指向或移動
LNode *Locate_Node(LNode *L, int key)/* 在以L為頭結點的單鏈表中查找值為key的第一個結點 */ { LNode *p=L–>next; while ( p!=NULL&& p–>data!=key) p=p–>next; // 指針一移一個節點 if (p–>data==key) return p; else { printf("所要查找的結點不存在!!"); retutn(NULL); }}4 結點的重新鏈接到某一個節點
5 結點的重新鏈接到某一個節點的下一個節點
LNode *create_LinkList(void)/* 頭插入法創建單鏈表,鏈表的頭結點head作為返回值 */ { int data ;LNode *head, *p;head= (LNode *) malloc( sizeof(LNode));head->next=NULL; /* 創建鏈表的表頭結點head */ while (1) { scanf(“%d”, &data) ;if (data==32767) break ;p= (LNode *)malloc(sizeof(LNode));p–>data=data; /* 數據域賦值 */p–>next=head–>next ; //新建節點p鏈接到頭結果的下一個節點,這里是NULL;head–>next=p ; // 頭節點鏈接到p/* 鉤鏈,新創建的結點總是作為第一個結點 */}return (head);}void Insert_LNode(LNode *L,int i, ElemType e)/* 在以L為頭結點的單鏈表的第i個位置插入值為e的結點 */ { int j=0; LNode *p,*q; p=L–>next ; while ( p!=NULL&& jnext; j++; } if (j!=i-1) printf("i太大或i為0!! "); else { q=(LNode *)malloc(sizeof(LNode)); q–>data=e; q–>next=p–>next; //q鏈接到p的下一個節點(插入節點鏈后一段) p–>next=q; //p鏈接到q(節點前一段鏈插入節點) }}鏈表節點操作要把握一個原則:先鏈后斷;
-End-
總結
以上是生活随笔為你收集整理的结构体里有指针 scanf赋值_C++|链表中常见的链表节点指针操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何分辨甲醛和乙醛?
- 下一篇: c++ 字符串数组长度排序_数组 | 后