2013 07 15 C Langugae 單鏈表

2021-06-17 00:28:38 字數 1462 閱讀 5331

乙個簡單結點的結構體表示為:

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...