乙個簡單結點的結構體表示為:
struct note
;乙個簡單的單向鍊錶的圖示
1.鍊錶是結構、指標相結合的-種應用,它是由頭、中間、尾多個鏈環組成的單方向可伸縮的鍊錶,鍊錶上的鏈環我們稱之為結點。
2.每個結點的資料可用-個結構體表示,該結構體由兩部分成員組成:資料成員與結構指標變數成員。
3.資料成員存放使用者所需資料,而結構指標變數成員則用來連線(指向)下-個結點,由於每-個結構指標變數成員都指向相同的結構體,所以該指標變數稱為結構指標變數。
4.鍊錶的長度是動態的,當需要建立-個結點,就向系統申請動態分配-個儲存空間,如此不斷地有新結點產生,直到結構指標變數指向為空(null)。申請動態分配-個儲存空間的表示形式為:
(struct note*)malloc(sizeof(struct note))
鍊錶的建立
在鍊錶建立過程中,首先要建立第乙個結點,然後不斷地
在其尾部增加新結點,直到不需再有新結點,即尾指標指向
null為止。
設有結構指標變數 struct note *p,*p1,*head;
head:用來標誌煉表頭;
p:在鍊錶建立過程中,p總是不斷先接受系統動態分配的新結點位址。
p1->next:儲存新結點的位址。
鍊錶建立的步驟:
第一步:建立第乙個結點
struct node
;struct note *p,*p1,*head;//結構指標變數
head=p1=p=(struct node *)malloc(sizeof(struct node);//申請記憶體
第二步:
給第-個結點成員data賦值並產生第二個結點
scanf(「%d」,&p->data); /*輸入10*/
p=(struct node *)malloc(sizeof(struct node);
第三步:將第-個結點與第二個結點連線起來
p1-> next=p;
第四步:產生第三個結點
p1=p;
scanf(「%d」,&p->data);/*輸入8*/
p=(struct node *)malloc(sizeof(struct node);
以後步驟都是重複第
三、四步,直到給出-個結束條件,不再建新的結點時,要有
p->next=null;它表示尾結點。
** #include
#include
#define len sizeof(struct node)
struct node ;
main()
p-> next=null;/*尾結點的指標成員值*/
p=head;/*鍊錶顯示*/
printf("鍊錶資料成員是:");
while(p->next!=null)
printf("%d\n",p->data); }
java 單鏈集合實現
介面 public inte ce mylist儲存資料 data實體類 public class node public node t data public node t data,nodenext public void setdata t data public t getdata publ...
反轉有序鏈單鏈表
本文總結了2種方法。單鏈表node的資料結構定義如下 class listnode 把當前鍊錶的下乙個節點pcur插入到頭結點dummy的下乙個節點中,就地反轉。dummy 1 2 3 4 5的就地反轉過程 pcur是需要反轉的節點。prev連線下一次需要反轉的節點 反轉節點pcur 糾正頭結點du...
單鏈線性表 C
1 include 2using namespace std 34 typedef int elemtype 56 class linklist 12 node staptr 13public 14 linklist int length 0,node p null length length st...