實驗一 鍊錶的基本操作

2022-07-25 06:51:06 字數 1630 閱讀 6671

你們的每一次瀏覽都是我堅持寫下去的動力

c語言的資料型別包括基本資料型別、構造型據型別指標型別和無型別;基本資料型別有整型、實型、字元型、列舉;構造資料型別包括陣列、結構體、公用體;結構體可以有基本資料型別與指標型別組合而來,主要用來表示鍊錶、棧、樹等較為複雜的資料物件。

簡單講,在函式體內定義的叫做區域性變數,包括主函式,在函式體外定義的即為全域性變數;全域性變數的特點有一下幾點

int e=10;     //全域性變數

int main()

// 10 20

程式執行介面比較簡單,我覺得重在演算法的理解

#include#includetypedef struct lnode

lnode;

lnode *head;

int n;

//建立鍊錶並輸入元素

void create()

p=head; //將頭結點的位址賦給p,用p代替head,因為鍊錶為空時,頭結點也是最後乙個結點

printf("請輸入元素!\n");

for(int i = 0;;i++)

scanf("%c",&e);

n++; //更新鍊錶元素個數

p->next=p_new;//將新結點的位址賦給最後乙個結點的指標域

p->date=e; //將從鍵盤輸入的元素e存放到上個結點的資料域

p_new->next=null;

p=p_new; //使p重新指向最後乙個結點

if(getchar()=='\n')

}free(p); //上面**執行完畢後,實際上最後乙個結點是空的,因為資料都是存放在倒數第二個結點的資料域(p->date=e),因此應該釋放最後乙個結點占用的記憶體空間

}//顯示鍊錶中所有元素

void output()

printf("\n");

}//插入元素e到首、尾、第i個元素後面

void insert_i()

printf("請輸入位置i和元素e:\n");

scanf("%d",&t);

getchar();

scanf("%c",&e);

//插入到表頭

if(t==0)

//插入到表尾

else if(t==n)

p_new=p;

p_new->date=e;

p_new->next=null;

n++;

}//插入到某個元素的後面

else

p_new->next=p->next;

p->next=p_new;

p_new->date=e;

n++;

}}//刪除指定元素

void delete()

else

e=p->next->date;

p->next=p->next->next;

n--;

}free(p);

}//選單

void menu()

int main()}}

return 0;

}

資料結構實驗 鍊錶的基本操作

include 2 1儲存結構 typedef struct lnode lnode,linklist 2 2建立乙個長度為n的鍊錶 前插法 void creatlist h linklist l,int n 前插法建立單鏈表 2 2建立乙個長度為n的鍊錶 尾插法 void creatlist r ...

鍊錶的基本操作

include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...

鍊錶的基本操作

鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...