数据结构
Chromium丶
!
展开
-
leetcode——删除倒数第n个节点
我的思路是用三个指针pf,p,pn。首先先让pn走到第n个节点再让三个指针一起移动,当pn为空时跳出循环,但是pf指针是在p的前面struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ if(head == NULL) return head; if(head->next == NULL && n == 1) { head = NULL; return hea原创 2022-03-29 16:10:16 · 98 阅读 · 0 评论 -
顺序表的基本操作(增删改查)——C语言
一、定义1、存储空间和元素存储一定连续2、如果要在存有n个数据的顺序表进行第k个位置的添加(删除)操作需要移动n-k个数据二、代码1、定义结构体typedef struct { datatype *element; //顺序表基地址 int length;}sqList, *LPsqList; 2、创建表LPsqList CreatesqList() { LPsqList sql = (LPsqList)malloc(sizeof(s原创 2021-03-12 20:17:06 · 404 阅读 · 0 评论 -
leetcode两数相加——C语言
先创建两个分别指向l1,l2的指针以及定义len1,len2的初始长度都为1len为len1,len2的长度差,方便补零max为最大长度 struct ListNode* h1 = l1; struct ListNode* h2 = l2; int len1 = 1,len2 = 1,len,max;再从l1,l2里面统计最大长度,并将最大长度赋值给max while(h1->next){ len1++; h1 = h1->next; .原创 2021-02-22 15:12:55 · 211 阅读 · 0 评论 -
循环单链表的基本操作(增删改查)——C语言
一、定义循环单链表与链表的性质相似,只是终端结点的指针不是指向空,而是指向头结点,判断空的条件是头结点指向下一个仍然还是头结点。二、代码1、定义结构体typedef struct CirList { datatype data; struct CirList* next;}CirList;2、创建头结点struct CirList* CreateList() { struct CirList* headNode = (struct CirL原创 2021-02-22 14:48:40 · 1435 阅读 · 0 评论 -
单链表的基本操作(增删改查)——C语言
一、定义1、存储空间不一定连续2、想要找到某一元素,必须从头指针位置遍历链表二、代码1、定义结构体typedef struct Node { datatype data; struct Node* next;}Node;2、创建头结点struct Node* CreateList() { //创建链表 struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));原创 2021-02-20 14:20:23 · 127 阅读 · 0 评论 -
顺序表的基本操作(增删改查)——C语言
一、定义1、存储空间一定连续2、可以进行随机访问二、代码1、定义结构体typedef struct { datatype *element; int length;}sqList, *LPsqList;2、顺序表初始化LPsqList CreatesqList() { LPsqList sql = (LPsqList)malloc(sizeof(sqList)); sql->element = (datatype *)m原创 2021-02-20 13:52:38 · 826 阅读 · 4 评论