資料結構和演算法 C語言

2021-07-22 07:22:30 字數 1900 閱讀 1046

鍊錶的基本操作:

**:

/**

作用:鍊錶的基本操作和將鍊錶逆置功能

**/#include "stdio.h"

#include "string.h"

#include "stdlib.h"

typedef struct linknodelinknode;

//從鍵盤中輸入資料,然後建立成煉表

linknode *creat_slist(linknode **phead);

int sqlist_print(linknode *phead);

//在結點數值為x的前面插入y

int sqlist_nodeinsert(linknode *phead, int x, int y);

//刪除結點為y的鍊錶結點

int sqlist_nodedel(linknode *phead, int y);

//保持表頭不變,然後逆置鍊錶

void sqlist_reverse(linknode *phead);

//建立鍊錶

linknode *creat_slist()

int inputdata = 0;

printf("請輸入乙個資料(-1結束):");

scanf("%d", &inputdata);

while (inputdata != -1)

return phead;

};//輸出鍊錶

int sqlist_print(linknode *phead)

linknode *pcurrent = phead->next;

printf("鍊錶的結果:\n");

while (pcurrent != null)

printf("\n");

return 0;

}//在結點數值為x的前面插入y,如果沒有則插在最後的位置

int sqlist_nodeinsert(linknode *phead, int x, int y)

//1.環境準備

linknode *pcurrent = phead->next;

linknode *ppre = phead;

linknode *tempnode;

//2.生成乙個結點

tempnode = (linknode*)malloc(sizeof(linknode));

tempnode->data = y;

tempnode->next = null;

//3.查詢x資料的位置

while (pcurrent != null)

ppre = pcurrent;

pcurrent = pcurrent->next;

} //3.插入資料

ppre->next = tempnode;

tempnode->next = pcurrent;

return 0;

};//刪除結點為y的鍊錶結點

int sqlist_nodedel(linknode *phead, int y)

//1.先查詢是否在鍊錶中,如果不在鍊錶中返回-1

//2.查詢出來後刪除

while (pcurrent != null)else

}//while

if (ptemp == null)

else

};//保持表頭不變,然後逆置鍊錶

void sqlist_reverse(linknode *phead)

while (pcurrent != null)

};void main()

**執行圖:

C語言資料結構1 資料結構和演算法

如果沒有接觸過資料結構這門課程,或者說只是單單聽過這個名詞。那麼在含義方面,資料結構對於我們來說是非常陌生的。在了解一門課程之前,我們總是要知道這門課程要學習什麼。在了解資料結構之前,我們需要知道什麼是資料。對於人類來說,一切可以讓我們獲取資訊的東西都是資料。我們可以通過乙個動物的叫聲判斷是什麼動物...

六 C語言資料結構和演算法

1 資料結構,顧名思義,資料的結構,而如何將資料組合成一種結構了,c語言裡用到了struct結構體型別 union聯合體型別 enum列舉型別這三種。struct結構體型別,顧名思義,是一種結構,一種由基本資料型別 int char double float等等 組合而成的乙個整體,至於如何組合,很...

C語言 資料結構 演算法 筆記

includevoid main int length sizeof arr sizeof int sizeof函式是返回乙個物件或型別占用的記憶體 位元組 printf 陣列大小 d位元組,型別大小 d位元組,長度 d n sizeof arr sizeof int length 演算法一 int...