#include <stdio.h>
#include <stdlib.h>
// 定义数据类型
typedef int DataType;
// 定义节点数据类型 同时定义节点指针类型、单链表指针类型
typedef struct node {
DataType item;
struct node* next;
} Node, *NodePtr, *SList;
int SL_CreateList(NodePtr *head, int size);
int SL_ListSize(SList list);
int SL_ListRealSize(SList list);
int SL_IsEmpty(SList list);
int SL_Insert(SList list, int pos, DataType item);
int SL_Display(SList list);
int SL_Find(SList list, int *pos, DataType item);
int SL_GetItem(SList list, int pos, DataType *p_item);
int SL_SetItem(SList list, int pos, DataType item);
int SL_Delete(SList list, int pos, DataType *p_item);
int SL_Clear(SList *pList);
/**
* 主函数
*
* @return int
*/
int main() {
// 头指针
NodePtr head = NULL;
int isCreated = SL_CreateList(&head, 5);
printf("单列表创建结果:%d\n", isCreated);
SList list = head; // 头指针指向了链表
// display content of list
SL_Display(list);
// size of list
int size = SL_ListSize(list);
printf("单链表的长度是%d\n", size);
size = SL_ListRealSize(list);
printf("单链表的实际长度是%d\n", size);
if (SL_IsEmpty(list) == 0) {
printf("链表内容不是空的\n");
} else {
printf("链表内容是空的\n");
}
// insert to list
SL_Insert(list, 1, 20);
SL_Insert(list, 2, 30);
size = SL_ListSize(list);
printf("单链表的长度是%d\n", size);
size = SL_ListRealSize(list);
printf("单链表的实际长度是%d\n", size);
// display content of list
SL_Display(list);
// 查找链表中的元素20
int pos = 0;
int status = SL_Find(list, &pos, 20);
if (pos != 0 && status == 1) {
printf("Item=20的元素位置是%d\n", pos);
}
单链表基本操作示例1[C语言实现]
最新推荐文章于 2022-09-06 19:18:22 发布