info=a;p->next=head->next;head->next=p;}追问能不能详细一点呢追答#include"stdio.h"typedefintdatatype;typedefstructlink_node{datatypeinfo;structlink_node*next;}node;main(){inti=1,n,a;node*head,*" />
收藏本站 我要纠错

C语言创建了一个链表函数,如何保存这个链表的头结点?

2021-06-08 16:50 链表品牌榜
1个回答
j***Z

head=(node*)malloc(sizeof(node));/ /创建头结点
head->next=NULL;
while(n--)
{
printf("\n请输入单链表第%d个结点的值:",i++);
scanf("%d",&a);
p=(node*)malloc(sizeof(node));
p->info=a;
p->next=head->next;
head->next=p;
}
追问
能不能详细一点呢

追答
#include "stdio.h"
typedef int datatype;
typedef struct link_node
{
datatype info;
struct link_node *next;
}node;
main()
{
int i=1,n,a;
node *head,*

4点赞
相关问答

如何将一个链表作为一个函数的参数

这就是个猴子选大王的游戏变形游戏描述:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。其实这个问题就是约瑟夫环的应用,主要应用循环链表来解决。以下是它的源程序:#includeiostream.hclass node //建立节点类{private:node *next;//nesxt为节点内的指针public:int data;//节点内的数据域node(void);//节点构造函数node(int obj);//带一个参数的节点构造函数insertnode(node *p);//插入节点函数声明 *p为指针类型参数node *deletenode(void);//删除节点函数声明node *nextnode(void) const; //查找下一节点函数声明

C语言链表如何实现冒泡排序?

两种 思路: 1、交换链表中各节点的数据,不交换节点; 2、交换节点,即节点link指针的内容。 下面以优秀种思路为例: void sort(LinkList *L) { int i,j,t; LinkList *p = L; int count = 0; while(p->link != NULL) { count++; p = p->link; } for(i=0;i p->link->data) { t=p->data; p->data = p->link->data; p->link->data=t; } p = p->link; } } }

C++怎么确定一个链表是否是空的?

链表区分带头节点和不带头结点两种。假定链表节点指向下一节点的指针变量名为next。那么区分情况,判断空链表的方法为:1 带头节点。对于带头节点的链表,存在有不变的头结点head,这个节点并不保存任何数据,仅提供链表起始的一个标识。对于此类链表,判断为空的条件为head->next==NULL。当head的next值为NULL,这时链表为空。2 不带头结点。不带头结点的情况,链表的起始节点是可能变化的,但无论如何变化,必须有一个节点指针类型的变量保存实际上的优秀个节点first。当first为空时,链表即为空。这时判断为空的条件为first==NULL。

循环链表是怎么建立的

声明一个结构体,该结构体包含一个值,和一个指向下一个链表的指针next!起始时,头结点指向其自身,增加一个结点时,使插入的结点的next指向头结点,使头结点的next指向插入节点。 详细代码如下: #include #include typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void CreateList_L(LinkList &L,int &n){ char c; bool fl=true; L=(LinkList) malloc (sizeof(LNode)); L->next=NULL; LinkList p; while(fl) { if(scanf("%d",&c)) {

给了一个二叉链表,怎么建立二叉树啊

#include#includeusing namespace std;#define MAXSIZE 100typedef struct BiNode{char data;struct BiNode *lchild,*rchild;}BiNode,*BiTree;void Create(BiTree &T)//用先序遍历的顺序建立二叉链表(递归方法){char ch;cin>>ch;if(ch=='#')T=NULL;else{T=new BiNode;T->data=ch;Create(T->lchild);Create(T->rchild);}}void PreOrder(BiTree &T)//先序遍历二叉树(递归){if(T)

如何逆序创建单链表

struct Node *create(int n)//逆序创建带头节点单链表,n为链表中元素个数{ struct Node *L;//L为表头 L=(struct Node*)malloc(sizeof(struct Node)); L->next=NULL; for(int i=0;idata=a; p->next=L->next;//将生成的节点插入到头节点后面 L->next=p; } return L;//返回表头}