1. 首页>动态要闻 > 信息

怎么把链表赋值

作者:何书东
2020-05-11
信息

1. 链表如何赋值

#include

#define NULL 0

struct student

{long num;

float score;

struct student *next;

};

void main()

{struct student a,b,c,*head,*p;

a.num=10101;a.score=89.5;

b.num=10103;b.score=90;

c.num=10107;c.score=85;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

do

{printf("%ld%5.1fn",p->num,p->score);

p=p->next;

}while(p!=NULL);

2. 带表头结点的单链表如何赋值,,程序每次都会停止

//没必要头和结点是分别的类型,最好是同一类型

//新结点最好初始化一下

//只是在你的基础上改了一下, 貌似头和结点并没有连接在一起

#include

#include

typedef struct

{

struct node *head;

int n;

}HeaderList;

typedef struct node

{

int element;

struct node *link;

}node;

int main()

{

HeaderList *h;

h=(HeaderList*)malloc(sizeof(HeaderList));

node *q;

int i;

for(i=0;ilink=NULL;

printf("输入元素数值:");

scanf("%d",&q->element);

q=q->link;

}

// q->link=NULL;

return 0;

}用C++写的,参与一下

#include

#include

using namespace std;

struct node //定义结构体

{

char* ch; //存放数据字符串

struct node* next; //指向下一个结点

};

struct node* Create() //新建结点并初始化

{

struct node* n=new struct node;

n->ch=NULL;

n->next=NULL;

return n;

}

int main()

{

struct node *head=NULL,*p=NULL;

char s[100]="";

while(1)

{

memset(s,'',100);

cin>>s;

if(strcmp(s,"quit")==0) break; //如果输入的是quit则表示用户结束输入

struct node *new_node;

new_node=Create(); //新建结点

new_node->ch=new char[strlen(s)]; //为新建立的结点分配数据字符串存储空间

strcpy(new_node->ch,s); //把用户输入的字符串存储入新结点中

if(head==NULL) //如果头结点为空,则把当前新结点当成头结点

{

head=new_node;

p=head; //当前指向为头结点

}

else //如果头结点不为空

{

p->next=new_node; //把上一个结点的next指向新建结点

p=p->next; //当前指向为新结点

}

}

p=head; //重新指向头结点,以便输出

while(1)

{

coutchnext==NULL) break; //如果当前结点没有指向下一个结点,则退出

p=p->next; //当前指向下一个结点

}

return 0;

}

3. C语言,创建一个链表并赋值1、2、3、4、5,麻烦把全部程序写下

//应该写的很清楚了#include #include typedef struct node{ int data; struct node *next;}node,*linklist;int main(){ int i; int a[5]={1,2,3,4,5}; linklist L; L=(linklist)malloc(sizeof(node)); node *p,*s; L->next=NULL; s=L; //依次将数组a中的5个元素插入单链表中 for(i=0;i<5;i++){ p=(node*)malloc(sizeof(node)); p->data=a[i]; p->next=s->next; s->next=p; s=s->next; } //将该链表打印出来 p=L->next; while(p){ printf("%d ",p->data); p=p->next; } return 0;}。

4. c++ list链表赋值

void load(linklist *head)

{

FILE *fp;

char filename[50]; //输入文件名

printf("载入的文件名:");

scanf("%s",filename); //从键盘获取输入文件名

fp=fopen(filename,"r"); //使用只读方式打开输入文件

if(!fp)

{

printf("文件打开失败!");

printf("请重新输入");

load(head);

}

while(!feof(fp))//检测当前行是否为空

{

a=malloc(sizeof(struct node));

fscanf(fp,"%s%s%s%sn",a->name,a->address,a->tel,a->zip);//写入a

xinjiedian(head,a); //调用创建新结点的函数

}

printf("载入成功!");

}

5. 数据结构 链表赋值到顺序表

首先你要实现链表类和顺序表类,然后直接调用这些类操作来实现即可。设链表类为linkedList,其结点结构为Node,其实中要用到的基本操作为GetFirstElem和GetNextElem,另设顺序表类为SqList, 则将用到的他的基本操作为Clear和Append。则将如下实现:

void CopyToSqlist(SqList sqlist, linkedList llist) {

Node *node = llist.GetFirstElem( );

sqlist.Clear( );

while(node) {

sqlist.Append(node->data);

node = llist.GetNextElem(node);

}

}

6. 链表解决集合运算问题中

//初始化一个链表,可以将任何Object都当e799bee5baa6e79fa5e98193e59b9ee7ad9431333363363434作链表来操作

function init(list) {

list._idleNext = list;

list._idlePrev = list;

}

// show the most idle item, 获取前一个节点

function peek(list) {

if (list._idlePrev == list) return null;

return list._idlePrev;

}

// remove the most idle item from the list,移除并返回前一个节点

function shift(list) {

var first = list._idlePrev;

remove(first);

return first;

}

// remove a item from its list,移除节点

function remove(item) {

if (item._idleNext) {

item._idleNext._idlePrev = item._idlePrev;

}

if (item._idlePrev) {

item._idlePrev._idleNext = item._idleNext;

}

item._idleNext = null;

item._idlePrev = null;

}

// remove a item from its list and place at the end.将节点插入到指定节点之后

function append(list, item) {

remove(item);

item._idleNext = list._idleNext;

list._idleNext._idlePrev = item;

item._idlePrev = list;

list._idleNext = item;

}

function isEmpty(list) {

return list._idleNext === list;

}

推荐阅读
  • 日照好玩的地方和吃海鲜应该去哪听说日

    日照好玩的地方:万平口:"旅游来日照,必到万平口",已成为各地游客的共识。刘家湾赶海园:以赶海系列活动为主,集旅游、休闲、度假、民俗、健身于一体的综合旅游园。竹洞天:位于山东省日照市城区西端的将帅沟毛竹…

    信息 2024-09-20
  • 什么是铸造

    铸造是指将室温中为液态,但不久后将要固态化的物质倒入特定形状的铸模待其凝固成形的加工方式。 被铸物质多半原为固态但加热至液态的金属(例:铜、铁、铝、锡、铅等),而铸模的材料可以是沙、金属甚至陶瓷。 因应…

    信息 2024-09-20
  • 变形金刚中博派和狂派各有哪些人物

    博派:擎天柱,铁皮,大黄蜂,爵士,棘齿。狂派:威震天,红蜘蛛,眩晕,吵闹,萨克,碎骨魔,路障,迷乱。…

    信息 2024-09-20
  • 一平方毫米的铜线能过多少安的电流

    1平方毫米的铜线在不同电流下通过的安培数不同。最大是18A:(1)60A以下,选1平方毫米的铜线安全载流量是6A;(2)60~100A,选1平方毫米的铜线,安全载流量是5A;(3)100A以上,选1平方毫米的铜线,安全载流量是2.5A 。…

    信息 2024-09-20
  • 中华人民共和国城乡规划法第四十条有规

    自2008年1月1日起施行的《中华人民共和国城乡规划法》第四十条:在城市、镇规划区内进行建筑物、构筑物、道路、管线和其他工程建设的,建设单位或者个人应当向城市、县人民政府城乡规划主管部门或者省、自治区、直辖…

    信息 2024-09-20