zoukankan      html  css  js  c++  java
  • 综合本章例9.9(建立链表的函数creat)、例9.10(输出链表的函数print)和本章习题第7题(删除链表中结点的函数del)、第8题(插入结点的函数insert),再编写一个主函数,先后调用这些函数。用以上5个函数组成一个程序,实现链表的建立、输出、删除和插入,在主函数中指定需要删除和插人的结点的数据

    综合本章例9.9(建立链表的函数creat)、例9.10(输出链表的函数print)和本章习题第7题(删除链表中结点的函数del)、第8题(插入结点的函数insert),再编写一个主函数,先后调用这些函数。用以上5个函数组成一个程序,实现链表的建立、输出、删除和插入,在主函数中指定需要删除和插人的结点的数据。

    #include <stdio.h>
    #include <stdlib.h>
    #define COUNT 5
    typedef struct LNode
    {
    	int num;
    	struct LNode *next;
    } LNode;
    
    LNode* create(int n)
    {
    	LNode *head, *p;
    	head = (LNode *)malloc(sizeof(LNode));
    	p = head; //头节点为0 加上头节点共11个节点
    	head->num = 0;
    	head->next = NULL;
    	for (int i = 1; i <= n; i++)
    	{
    		LNode *newNode = (LNode *)malloc(sizeof(LNode));
    		newNode->num = i;
    		newNode->next = NULL;
    		p->next = newNode;
    		p = p->next;
    	}
    	return head;
    }
    //在指定位置插入数据
    void insert(int n, int positon, LNode *root)
    {
        //首先找到指定位置
    	while (positon--)
    	{
    		root = root->next;
    	}
        //插入新的数据,重新链接插入点的前后节点关系
    	LNode *newNode = (LNode *)malloc(sizeof(LNode));
    	newNode->num = n;
    	newNode->next = root->next;
    	root->next = newNode;
    }
    void del(int n, LNode *root)
    {
    	LNode *pre;
    	while (root->num != n)
    	{
    		pre = root;
    		root = root->next;
    	}
    	pre->next = root->next;
    }
    void printList(LNode *root)
    {
    	printf("----
    ");
    	int i = 0;
    	while (root != NULL)
    	{
    		printf("node %d -> %d
    ", i, root->num);
    		root = root->next;
    		i++;
    	}
    }
    
    int main()
    {
    	int n, position;
    	printf("请输入插入/删除的数,及插入的位置,位置最大为:%d
    ", COUNT);
    	scanf("%d %d", &n, &position);
    	LNode *head = create(COUNT);
    	printList(head->next);
    	insert(n, position, head->next);
    	printList(head->next);
    	del(n, head->next);
    	printList(head->next);
    	return 0;
    }
    
    

    运行截图:

    综合本章例9.9(建立链表的函数creat)、例9.10(输出链表的函数print)和本章习题第7题(删除链表中结点的函数del)、第8题(插入结点的函数insert),再编写一个主函数,先后调用这些函数。用以上5个函数组成一个程序,实现链表的建立、输出、删除和插入,在主函数中指定需要删除和插人的结点的数据

  • 相关阅读:
    C#获取windos 登录用户信息
    像我这样的人
    只道情深,奈何缘浅(雪之轻裳搜集)
    如果我死了,还剩下什么(雪之轻裳)
    嫁给爱情 还是嫁给现实(搜集)
    排名前 16 的 Java 工具类
    java 获取当前屏幕截图
    转:零售数据观(一):如何花30分钟成为一个标签设计“达人”
    转:数据指标系列:电商数据分析指标体系总结V1.0
    转:领域模型中的实体类分为四种类型:VO、DTO、DO、PO
  • 原文地址:https://www.cnblogs.com/weiyidedaan/p/13331320.html
Copyright © 2011-2022 走看看