1. 什麼是c語言裡面的結點啊
節點就是一個位置,其中存放著相應的數據。
如果說宿舍樓是一個鏈表,那麼每間宿舍就是一個節點,裡面的學生就是相應的數據
2. 求各位給解釋(c語言程序)
見過佛珠吧,一個鏈表就是這串佛珠,而其上的每一個珠子就是一個個的節點。(當然,佛珠可以看成是個循環鏈表)
C中的數據結構鏈表中的節點是由兩部分組成,一部分稱之為數據,一部分稱之為指示器(即用來指出它的前趨或後繼結點的地址值),將這些節點通過指示器部分串接起來,就構成了鏈表。
3. c語言什麼叫節點
你說的節點應該是數據結構鏈表的組成單元吧。在鏈表中每個組成單元成為一個節點。這個節點通常是一個結構體。結構體是c語言的一種數據類型。
4. c語言節點和結點是什麼意思求具體解釋
結點,是指終結的點,最後的點。而節點則是一條線段(路徑)上任意選的一個點都可以稱為節點.
5. c語言關於鏈表,節點,結構體的疑問
typedef node*ming; 定義ming為node類型的指針。以後使用 ming a ;相當於是node *a
node **nam; 指向指針的指針類型
node *a; 單純指針類型
6. C語言 建立鏈表(鏈表的結點類型與成員個數等由學生自己定義)
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"malloc.h"
#include"conio.h"
/*定義DataType為int類型*/
typedef int DataType;
#define TRUE 1
#define FALSE 0
/*單鏈表的結點類型*/
typedef struct LNode
{DataType data; <br/> struct LNode *next; <br/> }LNode,*LinkedList;
/*初始化單鏈表*/
LinkedList LinkedListInit()
{LinkedList L; <br/> L=(LinkedList)malloc(sizeof(LNode)); <br/> L->next=NULL;<br/> printf("初始化單鏈表成功\n"); <br/> return L; <br/>}
/*清空單鏈表*/
void LinkedListClear(LinkedList &L)
{L->next=NULL; <br/> printf("鏈表已經清空\n"); <br/>}
/*檢查單鏈表是否為空*/
int LinkedListEmpty(LinkedList &L)
{if(L->next==NULL) <br/> {printf("單鏈表為空\n"); return TRUE;}
else
{printf("單鏈表非空\n");return FALSE;}
}
/*遍歷單鏈表*/
void LinkedListTraverse(LinkedList &L)
{LinkedList p; <br/> p=L->next; <br/> if(p==NULL) <br/> printf("單鏈表為空表\n"); <br/> else <br/> {printf("鏈表中的元素為:\n"); <br/> while(p!=NULL) <br/> {printf("%d ",p->data); p=p->next;}
}
printf("\n");
}
/*求單鏈表長度*/
int LinkedListLength(LinkedList &L)
{LinkedList p; <br/> int j; <br/> p=L->next; <br/> j=0; <br/> while(p!=NULL) <br/> { j++; p=p->next;}
return j;
}
/*從鏈表中查找元素*/
LinkedList LinkedListGet(LinkedList &L,int i)
{LinkedList p;<br/> p=L->next;int j=1; <br/> while(p&&j<i) {p=p->next; j++;}
if(p) printf("位序為%d的元素的值為%d\n",i,p->data);
else printf("查詢位置不正確\n");
}
/*從鏈表中查找與給定元素值相同的元素在順序表中的位置*/
int LinkedListLocate(LinkedList &L,DataType x)
{LinkedList p;int i=1; <br/> p=L->next; <br/> while(p && p->data != x) {p=p->next;i++;}
if(p) {printf("所查找的元素%d在表中的位置為%d\n",x,i);return i; }
else {printf("所查找的元素%d不存在\n",x);return 0; }
}
/*向鏈表中插入元素*/
void LinkedListInsert(LinkedList &L, int i, DataType x)
{LinkedList p,s;<br/> int j=0; p=L; <br/> while(p&&j<i) {p=p->next;j++;}
if(!p||j>i) printf("插入位置不正確\n");
else
{s=(LNode *)malloc(sizeof(LNode)); <br/> s->data=x; <br/> s->next=p->next; <br/> p->next=s; <br/> printf("在表中第%d個節點後插入%d成功\n",i,x); <br/> }
}
/*從鏈表中刪除元素*/
void LinkedListDel(LinkedList &L,int i)
{ LinkedList p,q;
int j=0;
p=L;
while(p->next&&j<i-1) {p=p->next;j++;}
if(p->next==NULL)
printf("刪除位置不正確\n");
else
{q=p->next;p->next=q->next;free(q);<br/> printf("第%d個元素已從鏈表中刪除\n",i);<br/> }
}
/*最後改好的將頭插發改為尾插法了*/
LinkedList LinkedListCreat(LinkedList&L,int n) /*建立單鏈表*/
{ int i;
DataType x;
LinkedList p;
L=(LinkedList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{p=(LinkedList)malloc(sizeof(LNode));<br/> printf("請依次輸入鏈表中的元素:");<br/> scanf("%d",&x);<br/> p->data=x;<br/> p->next=L->next;L->next=p;<br/> }
printf("輸入完畢\n");
return L;
}
main()
{printf("請用數字鍵選擇操作\n\n");<br/> printf("1.初始化\n");<br/> printf("2.建立單鏈表\n");<br/> printf("3.清空\n");<br/> printf("4.求鏈表長度\n");<br/> printf("5.檢查鏈表是否為空\n");<br/> printf("6.遍歷鏈表\n");<br/> printf("7.從鏈表中查找元素\n");<br/> printf("8.從鏈表中查找與給定元素值相同的元素在順序表中的位置\n");<br/> printf("9.向鏈表中插入元素\n");<br/> printf("0.從鏈表中刪除元素\n\n");<br/> printf("按其他鍵退出\n"); <br/> <br/>LinkedList L;<br/>int i,x,n,quit=0;<br/>while(!quit)<br/>switch(getch()) <br/>{<br/>case '1':L=LinkedListInit(); break;<br/>case '2':printf("請輸入需要的鏈表的長度為:");scanf("%d",&n);L=LinkedListCreat(L,n); break; <br/>case '3':LinkedListClear(L);break; <br/>case '4':printf("鏈表的長度為 %d(不含頭節點)\n",LinkedListLength(L)); break; <br/>case '5':LinkedListEmpty(L); break; <br/>case '6':LinkedListTraverse(L); break; <br/>case '7':printf("請輸入待查詢元素在鏈表中的位置:");scanf("%d",&i);LinkedListGet(L,i); break; <br/>case '8':printf("請輸入待查詢元素的值:"); scanf("%d",&x); LinkedListLocate(L,x); break; <br/>case '9':printf("請輸入插入元素的位置和值(中間用逗號隔開):\n"); scanf("%d,%d",&i,&x); <br/> LinkedListInsert(L,i,x); break; <br/>case '0':if(LinkedListEmpty(L)==1) printf("鏈表已經為空,不能刪除\n");<br/> else printf("請輸入待刪除元素的位置:\n"); scanf("%d",&i); LinkedListDel(L,i);<br/> break; <br/><br/>default:quit=1; <br/>}
}
7. C語言鏈表中q->next=p;表示什麼意思
q->next = p; 表示將節點p加入到節點q之後。
意思:使當前指針指向鏈表的下一個結點。
一般作用在數據結構中的單鏈表裡由應用,語句中的p一般指向一個結構體類型的數據,此類型的數據通常表示節點;結構體里存放的一些數據和記錄下一個節點地址的指針變數next;這個next就好比鏈條一樣,連接著一個個節點。
->是一個整體,它是用於指向結構體、C++中的class等含有子數據的指針用來取子數據。換種說法,如果在C語言中定義了一個結構體,然後申明一個指針指向這個結構體,那麼要用指針取出結構體中的數據,就要用到「->」.
(7)c語言節點類型的定義擴展閱讀
鏈表的特點:
1、n個節點離散分配
2、每一個節點之間通過指針相連
3、每一個節點有一個前驅節點和一個後繼節點
4、首節點沒有前驅節點,尾節點沒有後繼節點
創建鏈表前須知
首節點:存放第一個有效數據的節點。
頭節點:在單鏈表的第一個結點之前附設一個結點,它沒有直接前驅,稱之為頭結點,頭結點的數據域可以不存儲任何信息,指針域指向第一個節點(首節點)的地址。頭結點的作用是使所有鏈表(包括空表)的頭指針非空。
頭指針:指向頭節點的指針。
尾節點:存放最後一個有效數據的節點。
尾指針:指向尾節點的指針。
8. C語言節點
q=p->next;
p->next=q->next;
free(q);
這個答案好像書上都有的吧。
9. C語言版,數據結構
用遞歸。如果(*(A.left).left)=0說明是子節點了。
剩下的就和遍利的演算法一樣,用遞歸。