逆序输入n个数据元素的值,建立带头结点的单链表的c语言程序?急需!!!!

作者&投稿:季和 (若有异议请与网页底部的电邮联系)
逆序输入n个数据元素的值,建立带头结点的单链表的c语言程序,怎么做?~

#include
#include
#include

//函数结果状态代码
#define OK 1
#define ERROR 0
//Status是函数的类型,其值是函数结果状态代码
typedef int Status;
typedef int ElemType;

//----线性表的单链表存储结构----
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

void CreateList_L(LinkList &L,int n){
//逆位序输入n个元素的值,建立带表头结点的单链线性表L。
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; //先建立一个带头结点的单链表
for (int i=n;i>0;--i){
LinkList p = (LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%d",&p->data); //输入元素值
p->next = L->next;L->next = p; //插入到表头
}
}//CreateList_L

Status ListShow_L(LinkList L){
//将带头结点的单链线性链表L的元素列出。
LinkList p = L;
while(p->next){p = p->next;printf("%d ",p->data);}
return OK;
}//ListShow_L

void main(){
int n;
printf("请输入将要载入链表的元素个数:");
scanf("%d",&n); //初始化线性链表元素的个数
printf("请逆序输入%d个元素的值:
",n);
LinkList L;
CreateList_L(L,n); //初始化线性链表
ListShow_L(L); //输出线性链表元素的值
}

#include
#include

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

NODE *create()
{
NODE *head,*p,*tail;
int num;

head=tail=NULL;
printf("please input the number,end with -1:");
scanf("%d",&num);

while(num!=-1)
{
p=(NODE*)malloc(sizeof(NODE));
if(p==NULL)
{
printf("Malloc failure
");
return NULL;
}
p->data=num;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&num);

}
return head;
}

NODE *nixu(NODE *head)
{
NODE *p,*q,*r;
q=r=NULL;
p=head;
while(p)
{
q=p;
p=p->next;
q->next=r;
r=q;
}
return q;
}

printlist(NODE *head)
{
while(head)
{
printf("%5d",head->data);
head=head->next;
//printf("");

}

}

void main()
{
NODE *head;
head=create();
head=nixu(head);
printlist(head);
}

这个是随便输入几个数据以-1结束输入的程序,如果你要定n的值,那就把while函数改成for就好

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

//函数结果状态代码
#define OK 1
#define ERROR 0
//Status是函数的类型,其值是函数结果状态代码
typedef int Status;
typedef int ElemType;

//----线性表的单链表存储结构----
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

void CreateList_L(LinkList &L,int n){
//逆位序输入n个元素的值,建立带表头结点的单链线性表L。
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; //先建立一个带头结点的单链表
for (int i=n;i>0;--i){
LinkList p = (LinkList)malloc(sizeof(LNode)); //生成新结点
scanf("%d",&p->data); //输入元素值
p->next = L->next;L->next = p; //插入到表头
}
}//CreateList_L

Status ListShow_L(LinkList L){
//将带头结点的单链线性链表L的元素列出。
LinkList p = L;
while(p->next){p = p->next;printf("%d ",p->data);}
return OK;
}//ListShow_L

void main(){
int n;
printf("请输入将要载入链表的元素个数:");
scanf("%d",&n); //初始化线性链表元素的个数
printf("请逆序输入%d个元素的值:\n",n);
LinkList L;
CreateList_L(L,n); //初始化线性链表
ListShow_L(L); //输出线性链表元素的值
}

逆序输入n个数据元素的值,建立带头结点的单链表的c语言程序,怎么做?
答:void CreateList_L(LinkList &L,int n){ //逆位序输入n个元素的值,建立带表头结点的单链线性表L。L = (LinkList)malloc(sizeof(LNode));L->next = NULL; //先建立一个带头结点的单链表 for (int i=n;i>0;--i){ LinkList p = (LinkList)malloc(sizeof(LNode)); //生成新结...

数据结构中 逆位序输入N个元素的值,建立带头结点的单链表。 逆位序输入...
答:逆位序输入就是类似于输入的顺序进行逆序输入,你写一个进去链表就通过头结点的next指针把这个节点放到它后面,于是每次输入一个节点都放到头结点后面,这样就会出现逆序了。关于你第二个问题,跟你预想的是一样的,输入:woshishui 输出:iuhsihsow ...

有一道比较难的C语言,有大神会吗?
答:void CreateList_L(LinkList &L, int n){ int i;LinkList p;L = (LinkList)malloc(sizeof(LNode));L->next = NULL;printf("逆序输入 n 个数据元素,学号和姓名,建立带头结点的单链表\n");for (i = n; i > 0; --i){ p=(LinkList)malloc(sizeof(LNode));scanf("%d",&(p-...

指针 将n个数按输入时顺序的逆序排列,用函数实现
答:void sort(int *p,int m);int i,n;int *p;int num[5];printf("input n: 5\n");scanf("%d",&n);printf("please input these numbers :\n");for(i=0;i<n;i++)scanf("%d",&num[i]);p=&num[0];sort(p,n);printf("\nNow ,the sequence is :\n");for(i=0;i<n;i...

怎么做???数据结构-单链表实践报告!!!
答:问题一:逆位序输入n个元素的值, 逆位 就是位置相逆的意思,比如现在的list节点为 1 2 3 4 5,让你输入的时候按 5 4 3 2 1的顺序,这就叫逆位输入。这个函数里面并没有体现逆位,只是想告诉使用这个方法的人,最终得到的LIST是与输入相反的。问题二和问题三:他们是一起的,这两句话的意思...

数据结构(C语言版),带头结点的单链表,初始化。不懂的在算法里批注了...
答:{ //逆位序输入n个元素的值 这是写程序的人的注释 逆序体现在插入数据时,不是在尾部追加,而是从头部加入 每次输入的数据结点,都会成为当前的数据头 正向遍历数据(表头到表尾)时,所显示的数据与录入的顺序是相反的。L=(Linklist)malloc(sizeof(Lnode));L->next=NULL;//建立一个带表头的单...

C语言多组n个数,求逆序!大神快来!
答://C:#include<stdio.h>int n,i,a[21];int main(){ scanf("%d",&n); while(n) { for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=n;i>1;i--) printf("%d ",a[i]); printf("%d\n",a[1]); scanf("%d",&n); } return 0;}...

数据结构作业
答://逆序输入n个元素的值,建立带表头结点的单链线性表L LinkList L=*pL=(LinkList)malloc(sizeof(LNode));L->next=NULL; //建立带表头结点的单链表 for(int i=0;i<n;i++){ LinkList q=(LinkList)malloc(sizeof(LNode)); //生成新结点 scanf(ScanfType,&q->data); //插入元素...

数据结构如何实现线性链表的基本操作,如插入删除修改逆序等?
答:void CreateList(LinkList *L,int n) /* 算法2.11 */ { /* 逆位序(插在表头)输入n个元素的值,建立带表头结构的单链线性表L */ int i;LinkList p;L=(LinkList)malloc(sizeof(struct LNode));(*L)->next=NULL; /* 先建立一个带头结点的单链表 */ printf("请输入%d个数据\n",n...

怎样将一个数组逆序输出?
答:以python为例,将一个数组逆序输出的示例代码为:!/usr/bin/env python -*- coding: utf-8 -*- arg = [1, 2, 3, 4, 5]arg_1 = []for i in range(1, len(arg) + 1):arg_1.append(arg[len(arg) - i])print arg print arg_1 执行程序,输出结果为:[1, 2, 3, 4, 5]...