首页 > 其他分享 >链表

链表

时间:2022-12-01 21:33:09浏览次数:45  
标签:int pnew next 链表 link new Link

1.头插法

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct people
{
int age;
struct people* next;
}link;


int main()
{
link* head = (link*)malloc(sizeof(link));
link* new, * front;
front = head;
int i, n;
scanf("%d", &n);

for (i = 0; i < n; i++)
{
new = (link*)malloc(sizeof(link));
new->age = i;
new->next = NULL;
new->next = front->next;
front->next = new;
}
link* p = head->next;
for (i = 0; i < n; i++)
{
printf("%d ", p->age);
p = p->next;
}
return 0;

}

2.尾插法

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


typedef struct node
{
int data;
struct node* next;
}Link;

int main()
{
Link* head = (Link*)malloc(sizeof(Link));
Link* tail, * pnew;
tail = head;//尾指针指向头指针
int n;
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
pnew = (Link*)malloc(sizeof(Link));//创造新结点
pnew->data = i;//给数据域赋值
pnew->next = NULL;//指针域设为空
tail->next = pnew;//新结点地址赋给尾节点的指针域
tail = pnew;//尾指针指向新结点(新结点也就是最后一个结点)
}
Link* p = head->next;
for (i = 0; i < n; i++)
{
printf("%d ", p->data);
p = p->next;
}
return 0;
}

标签:int,pnew,next,链表,link,new,Link
From: https://blog.51cto.com/u_15841666/5904101

相关文章

  • 剑指offer:反转链表
    题目描述输入一个链表,反转链表后,输出链表的所有元素。1.非递归/*structListNode{intval;structListNode*next;ListNode(intx):val(x),......
  • 剑指offer:二叉搜索树与双向链表
    题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。1.递归/*structTreeNode{intval;s......
  • 剑指offer:复杂链表的复制
    题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。/*structRandomListNode{intlabel;structRandom......
  • 删除有序链表中的重复元素(python)
    重复的留下一个def deleteDuplicates(self , head: ListNode) -> ListNode:        # write code here        #空链表        if ......
  • 链表的奇偶重排
    思路:变成数组操作def oddEvenList(self , head: ListNode) -> ListNode:        # write code here        p = head        num......
  • 单链表的排序(python)
    思路:链表最难受的就是不能按照下标访问,只能逐个遍历,那像排序中常规的快速排序、堆排序都不能用了,只能用依次遍历的冒泡排序、选择排序这些。但是这些O(n2)O(n^2)O(n2)复杂......
  • 单链表每k个一组反转(python)
    题目:将给出的链表中的节点每k 个一组翻转,返回翻转后的链表如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。具体做法......
  • 设计链表-LeetCode707 基础题
    LeetCode链接:https://leetcode.cn/problems/design-linked-list/题目:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val......
  • 单链表指定区间反转(python)
    单链表中的第m和n之间元素反转m=2,n=4具体做法:step1:我们可以在链表前加一个表头,后续返回时去掉就好了,因为如果要从链表头的位置开始反转,在多了一个表头的情况下就......
  • 分隔链表
    86.分隔链表这个题的意思比较简单就是要把小于x的放一边,大于x的放一边,我们可以把这一个链表分为大于x,和小于x的两个链表,分开后只需要将小于x链表的最后一个结点的ne......