链表的建立

#include <stdio.h>

#include <stdlib.h>

#define null 0

typedef struct snode

{

char *name;

char *no;

int score[5];

}typedefdata;

typedef struct node

{

typedefdata data;

struct node *next;

}linklist;
linklist *insert_new()

{

char flag;

int x;

char *na;

char *num;

int grade[5];

linklist *head,*rear,*p;

head = (struct node*)malloc(sizeof(linklist));//头节点的空间分配

rear = head;//头尾相连进行初始化

do{//do-while语句保证至少进行一次。

printf("name:");

scanf("%s",&na);

printf("No.:");

scanf("%s",&num);

printf("yuwen_grade:");

scanf("%d",&grade[0]);

printf("shuxue_grade:");

scanf("%d",&grade[1]);

printf("yingyu_grade:");

scanf("%d",&grade[2]);

printf("zhengzhi_grade:");

scanf("%d",&grade[3]);

printf("tiyu_grade:");

scanf("%d",&grade[4]);

p = (struct node*)malloc(sizeof(linklist));

p->data.name = na;

p->data.no = num;

for(x=0;x<5;x++)

p->data.score[x] = grade[x];

rear->next = p;

rear = p;

printf("\n\n continue?q for quit!");

getchar();

scanf("%c",&flag);

}while(flag != ‘q‘);

rear->next = null;

return (head);

}
for(x=0;x<5;x++)

p->data.score[x] = grade[x];

p->next = head->next;

head->next = p;

printf("\n\n continue?q for quit!");
int main()

{

insert_new();

return 0;

}

时间: 2024-09-30 20:37:44

链表的建立的相关文章

链表的建立及释放

链表是建立 struct Data{    int num;    int score;    struct Data *next;}; struct Data *input() { struct Data *head,*p1,*p2; p1=(struct Data*)malloc(LEN); p2=(struct Data*)malloc(LEN); n=0; scanf("%d",&p1->num); while(p1->num!=0) { scanf(&qu

单向链表的建立(2)

链表的建立可以使用尾插法,也可以使用头插法,头插法就是从头节点开始,向前扩展节点,最后生成带头节点的单向链表,使得内容与输入相反. 链表的定义与(1)中相同,这里只介绍链表的建立函数. 1 LNode *create(int n) 2 { 3 int m; 4 LNode *head=(LNode *)malloc(sizeof(LNode)); 5 LNode *tail=(LNode *)malloc(sizeof(LNode)); 6 LNode *p; 7 head->next=NULL

数据结构之 线性表---有序链表的建立

mxjj130304杨少鹏(13110581086)        注销 数据结构实验之链表六:有序链表的建立 数据结构实验之链表六:有序链表的建立 Time Limit: 1000MS    Memory limit: 65536K 题目描述 输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表. 输入 第一行输入整数个数N: 第二行输入N个无序的整数. 输出 依次输出有序链表的结点值. 示例输入 6 33 6 22 9 44 5 示例输出 5 6 9 22 3

C 动态链表的建立,输出,删除,插入

动态链表的建立,输出,删除,插入 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define NULL 0 #define LEN sizeof(struct student) struct student { long num; float score; struct student*next; }; int n;/*n为全局变量*/ struct student *creat() { struct

单向链表的建立,添加与删除

/*-------------------------包含头文件------------------------------------*/ #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> int count=0; /*-------------------------结构体定义部分------------------------------*/ typed

数据结构-编程实现一个双链表的建立,双链表的打印,双链表的测长

1:双链表的建立,打印,代码如下: // ConsoleApplication24.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<malloc.h> #include <iostream> #include <assert.h> using namespace std; typedef struct DbNode //双向链表结构体 { int data;//节点数据 DbNode *lef

单链表的建立与打印

建立单链表,并且从头到尾打印单链表 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> typedef int DataType; typedef struct LinkNode { DataType data;//定义节点的数据 struct LinkNode *next;//保存下一个节点的地址 }LinkNode,*pList,*pLin

单项链表的建立

链表是最基本的数据结构之一,建立单项链表步骤如下 定义链表节点 定义三个指针——头指针,尾指针,当前结点指针.并分别申请内存,初始化 判断是不是头指针,如果是,则当前结点赋值给头指针,尾指针的后继为空;如果当前不是头指针,在尾指针后追加当前结点 完成插入操作后,更新尾指针和尾指针的后继 重新申请一块内存为新的扩展节点使用 定义简单的节点结构体 1 typedef struct Node 2 { 3 int data; 4 struct Node *next; 5 } Node; 最后返回链表的头

动态链表的建立

建立一个动态链表就是在程序执行时根据用户的输入从无到有一次建立起一个表格,这个表格中的数据都一次保存在各个节点上,每个节点都是用new操作符来动态开辟,节点与节点之间用指针next相关联 代码示例 1 #include <iostream> 2 using namespace std; 3 /*******************define class book************************/ 4 class book 5 { 6 public: 7 int num; 8

c之二叉树链表操作---建立、(递归)前序遍历、中序遍历、后序遍历

[二叉树链表] 1.节点定义: typedef struct node{ int data; struct node*lchild,*rchild; }Tree,*BiTree; 2.创建二叉树: BiTree creat_Tree(BiTree root,int num){//建立二叉树 if(root==NULL) { root=(Tree *)malloc(sizeof(Tree)); if(root==NULL) { printf("no memory available\n"