永发信息网

怎么求线性表的长度,我需要一个线性表的定义,赋值,然后求线性表的长度。

答案:2  悬赏:0  手机版
解决时间 2021-02-14 10:32
  • 提问者网友:欲望失宠
  • 2021-02-13 20:41
这是我的数据结构作业,我明天要交作业了。求求高手们。
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-02-13 21:29
#include
#include

struct TLink {
int data;
struct TLink * next;
};


struct TLink * new_item(int number)
{
struct TLink * r = 0;
r = (struct TLink *)malloc(sizeof(struct TLink));
r->data = number;
r->next = 0;
return r;
}


struct TLink * lookup(struct TLink * root, int number)
{
struct TLink * h = root;
while(h) {
if (h->data == number) return h;
h = h->next ;
}
return 0;
}


void append(struct TLink * * root, int number)
{
struct TLink * r = 0, * n = 0;
if (!root) return ;


if (lookup(*root, number)) return;


r = *root;
if (!r) {
*root = new_item(number);
return ;
}


if (number < r->data ) {
n = new_item(number);
n->next = r;
*root = n;
return ;
}


while(r) {
n = r->next ;


if (!n) {
n = new_item(number);
r->next = n;
return ;
}


if (number < n->data ) {
r->next = new_item(number);
r->next->next = n;
return ;
}
r = n;
}
}


void print(struct TLink * root)
{
int total = 0;
struct TLink * r = root;
printf("【");
while(r) {
printf("%d ", r->data );
r = r->next ;
total ++;
}
printf("\b】\n");
printf("线性表总长度 = %d\n", total);
}

int main(void)
{
int i = 0; struct TLink * x=0;
int a[] = {8,4,3,9,5,1};
printf("原数据为:\n数组【");
for(i = 0; i < 6; i++) {
printf("%d ", a[i]);
append(&x, a[i]);
}
printf("\b】\n转换为有序线性表\n:");
print(x);
return 0;
}
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-02-13 21:46
给成员赋值 typedef struct node { char data; struct node *next; }node,*linklist; linklist createfromtail(void) { linklist h; node *node,*tail; char c; int flag=1; h=(linklist)malloc(len); h->next=null; tail=h; while(flag) { c=getchar(); if(c!='#') { node=(node *)malloc(len); node->data=c; // 这里 tail->next=node; tail=node; } else { flag=0; tail->next=null; } } c=getchar(); return(h); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯