#include "pch.h"#include <iostream>//创建链表typedef struct ListTable {int nElement;    //链表元素int nSequence;   //节点序号ListTable *pNext;//下一个节点}ListTable;//初始化链表//参数:元素的值ListTable* initListTable(int nNum){//头结点ListTable *head;//申请内存head = (ListTable*)malloc(sizeof(ListTable));//初始化成员变量head->nElement = nNum;head->nSequence =1;head->pNext = NULL;//返回头结点指针return head;}//插入元素//参数:链表指针 元素的值void insertElement(ListTable *list, int nNum){//创建局部变量ListTable *pList = list;int nCount = list->nSequence;//申请新的节点空间ListTable *pNode = (ListTable*)malloc(sizeof(ListTable));//遍历链表while (pList != NULL){//如果下一个节点为空,则插入元素if (pList->pNext ==NULL){pList->pNext = pNode;pNode->nSequence = nCount + 1;pNode->nElement = nNum;pNode->pNext = NULL;return;}nCount += 1;pList = pList->pNext;}}//删除指定序号元素//参数:链表指针  元素序号void deleteElement(ListTable *list,int nSequence){//如果是第一个节点,直接freeif (list->nSequence == nSequence){free(list);return;}//创建局部变量ListTable *pList = list;ListTable *pTmp=NULL;//遍历链表while (pList!=NULL){//如果序号相等,删除指定序号元素if (pList->pNext->nSequence == nSequence){pTmp = pList->pNext->pNext;free(pList->pNext);pList->pNext = pTmp;//之后的序号依次减一while (pTmp != NULL){pTmp->nSequence -= 1;pTmp = pTmp->pNext;}return;}pList = pList->pNext;}printf("节点不存在!\n");}//修改元素//参数:链表指针  元素序号  元素的值void changeElement(ListTable *list, int nSequence,int nNum){ListTable *pList = list;while (pList != NULL){if (pList->nSequence == nSequence){pList->nElement = nNum;return;}pList = pList->pNext;}printf("节点不存在!\n");}//释放链表//参数:链表指针void deleteListTable(ListTable *list){ListTable *pList = list;ListTable *pTmp=NULL;while (pList != NULL){pTmp= pList->pNext;free(pList);pList = pTmp;}printf("释放完成!\n");}//遍历链表元素//参数:链表指针void showElement(ListTable *list){ListTable *pList = list;if (pList == NULL){printf("链表为空!\n");return;}while (pList != NULL){printf("链表元素:%d  元素序号:%d\n", pList->nElement, pList->nSequence);pList = pList->pNext;}}int main(){//初始化链表 第一个元素为1ListTable *list= initListTable(1);//插入2,3,4,5四个元素insertElement(list, 2);insertElement(list, 3);insertElement(list, 4);insertElement(list, 5);//修改序号5的元素为6changeElement(list, 5, 6);//删除序号为3的元素deleteElement(list, 3);//遍历showElement(list);//释放deleteListTable(list);}

vs2017编译